001package net.bramp.ffmpeg.probe;
002
003import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
004import java.util.Map;
005import org.apache.commons.lang3.math.Fraction;
006
007@SuppressFBWarnings(
008    value = {"UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD"},
009    justification = "POJO objects where the fields are populated by gson")
010public class FFmpegStream {
011
012  // TODO Add more CodecTypes
013  public enum CodecType {
014    VIDEO,
015    AUDIO,
016  }
017
018  public int index;
019  public String codec_name;
020  public String codec_long_name;
021  public String profile;
022  public CodecType codec_type;
023  public Fraction codec_time_base;
024
025  public String codec_tag_string;
026  public String codec_tag;
027
028  public int width, height;
029
030  public int has_b_frames;
031
032  public String sample_aspect_ratio; // TODO Change to a Ratio/Fraction object
033  public String display_aspect_ratio;
034
035  public String pix_fmt;
036  public int level;
037  public String chroma_location;
038  public int refs;
039  public String is_avc;
040  public String nal_length_size;
041  public Fraction r_frame_rate;
042  public Fraction avg_frame_rate;
043  public Fraction time_base;
044
045  public long start_pts;
046  public double start_time;
047
048  public long duration_ts;
049  public double duration;
050
051  public long bit_rate;
052  public long max_bit_rate;
053  public int bits_per_raw_sample;
054  public int bits_per_sample;
055
056  public long nb_frames;
057
058  public String sample_fmt;
059  public int sample_rate;
060  public int channels;
061  public String channel_layout;
062
063  public FFmpegDisposition disposition;
064
065  public Map<String, String> tags;
066}