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  public enum CodecType {
013    VIDEO,
014    AUDIO,
015    SUBTITLE,
016    DATA,
017    ATTACHMENT
018  }
019
020  public int index;
021  public String codec_name;
022  public String codec_long_name;
023  public String profile;
024  public CodecType codec_type;
025  public Fraction codec_time_base;
026
027  public String codec_tag_string;
028  public String codec_tag;
029
030  public int width, height;
031
032  public int has_b_frames;
033
034  public String sample_aspect_ratio; // TODO Change to a Ratio/Fraction object
035  public String display_aspect_ratio;
036
037  public String pix_fmt;
038  public int level;
039  public String chroma_location;
040  public int refs;
041  public String is_avc;
042  public String nal_length_size;
043  public Fraction r_frame_rate;
044  public Fraction avg_frame_rate;
045  public Fraction time_base;
046
047  public long start_pts;
048  public double start_time;
049
050  public long duration_ts;
051  public double duration;
052
053  public long bit_rate;
054  public long max_bit_rate;
055  public int bits_per_raw_sample;
056  public int bits_per_sample;
057
058  public long nb_frames;
059
060  public String sample_fmt;
061  public int sample_rate;
062  public int channels;
063  public String channel_layout;
064
065  public FFmpegDisposition disposition;
066
067  public Map<String, String> tags;
068  public SideData[] side_data_list;
069
070  public static class SideData {
071
072    public String side_data_type;
073    public String displaymatrix;
074    public int rotation;
075  }
076}