001package net.bramp.ffmpeg.adapter; 002 003import com.google.gson.*; 004import java.lang.reflect.Type; 005import net.bramp.ffmpeg.probe.FFmpegFrame; 006import net.bramp.ffmpeg.probe.FFmpegFrameOrPacket; 007import net.bramp.ffmpeg.probe.FFmpegPacket; 008 009public class FFmpegPacketsAndFramesAdapter implements JsonDeserializer<FFmpegFrameOrPacket> { 010 @Override 011 public FFmpegFrameOrPacket deserialize( 012 JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) 013 throws JsonParseException { 014 if (jsonElement instanceof JsonObject) { 015 final String objectType = ((JsonObject) jsonElement).get("type").getAsString(); 016 017 if (objectType.equals("packet")) { 018 return jsonDeserializationContext.deserialize(jsonElement, FFmpegPacket.class); 019 } else { 020 return jsonDeserializationContext.deserialize(jsonElement, FFmpegFrame.class); 021 } 022 } 023 024 return null; 025 } 026}