using System.Collections.Generic;
using System.Text.Json.Serialization;
using MediaBrowser.Common.Json.Converters;
namespace MediaBrowser.MediaEncoding.Probing
{
///
/// Represents a stream within the output.
///
public class MediaStreamInfo
{
///
/// Gets or sets the index.
///
/// The index.
[JsonPropertyName("index")]
public int Index { get; set; }
///
/// Gets or sets the profile.
///
/// The profile.
[JsonPropertyName("profile")]
public string Profile { get; set; }
///
/// Gets or sets the codec_name.
///
/// The codec_name.
[JsonPropertyName("codec_name")]
public string CodecName { get; set; }
///
/// Gets or sets the codec_long_name.
///
/// The codec_long_name.
[JsonPropertyName("codec_long_name")]
public string CodecLongName { get; set; }
///
/// Gets or sets the codec_type.
///
/// The codec_type.
[JsonPropertyName("codec_type")]
public string CodecType { get; set; }
///
/// Gets or sets the sample_rate.
///
/// The sample_rate.
[JsonPropertyName("sample_rate")]
public string SampleRate { get; set; }
///
/// Gets or sets the channels.
///
/// The channels.
[JsonPropertyName("channels")]
public int Channels { get; set; }
///
/// Gets or sets the channel_layout.
///
/// The channel_layout.
[JsonPropertyName("channel_layout")]
public string ChannelLayout { get; set; }
///
/// Gets or sets the avg_frame_rate.
///
/// The avg_frame_rate.
[JsonPropertyName("avg_frame_rate")]
public string AverageFrameRate { get; set; }
///
/// Gets or sets the duration.
///
/// The duration.
[JsonPropertyName("duration")]
public string Duration { get; set; }
///
/// Gets or sets the bit_rate.
///
/// The bit_rate.
[JsonPropertyName("bit_rate")]
public string BitRate { get; set; }
///
/// Gets or sets the width.
///
/// The width.
[JsonPropertyName("width")]
public int Width { get; set; }
///
/// Gets or sets the refs.
///
/// The refs.
[JsonPropertyName("refs")]
public int Refs { get; set; }
///
/// Gets or sets the height.
///
/// The height.
[JsonPropertyName("height")]
public int Height { get; set; }
///
/// Gets or sets the display_aspect_ratio.
///
/// The display_aspect_ratio.
[JsonPropertyName("display_aspect_ratio")]
public string DisplayAspectRatio { get; set; }
///
/// Gets or sets the tags.
///
/// The tags.
[JsonPropertyName("tags")]
public IReadOnlyDictionary Tags { get; set; }
///
/// Gets or sets the bits_per_sample.
///
/// The bits_per_sample.
[JsonPropertyName("bits_per_sample")]
public int BitsPerSample { get; set; }
///
/// Gets or sets the bits_per_raw_sample.
///
/// The bits_per_raw_sample.
[JsonPropertyName("bits_per_raw_sample")]
[JsonConverter(typeof(JsonInt32Converter))]
public int BitsPerRawSample { get; set; }
///
/// Gets or sets the r_frame_rate.
///
/// The r_frame_rate.
[JsonPropertyName("r_frame_rate")]
public string RFrameRate { get; set; }
///
/// Gets or sets the has_b_frames.
///
/// The has_b_frames.
[JsonPropertyName("has_b_frames")]
public int HasBFrames { get; set; }
///
/// Gets or sets the sample_aspect_ratio.
///
/// The sample_aspect_ratio.
[JsonPropertyName("sample_aspect_ratio")]
public string SampleAspectRatio { get; set; }
///
/// Gets or sets the pix_fmt.
///
/// The pix_fmt.
[JsonPropertyName("pix_fmt")]
public string PixelFormat { get; set; }
///
/// Gets or sets the level.
///
/// The level.
[JsonPropertyName("level")]
public int Level { get; set; }
///
/// Gets or sets the time_base.
///
/// The time_base.
[JsonPropertyName("time_base")]
public string TimeBase { get; set; }
///
/// Gets or sets the start_time.
///
/// The start_time.
[JsonPropertyName("start_time")]
public string StartTime { get; set; }
///
/// Gets or sets the codec_time_base.
///
/// The codec_time_base.
[JsonPropertyName("codec_time_base")]
public string CodecTimeBase { get; set; }
///
/// Gets or sets the codec_tag.
///
/// The codec_tag.
[JsonPropertyName("codec_tag")]
public string CodecTag { get; set; }
///
/// Gets or sets the codec_tag_string.
///
/// The codec_tag_string.
[JsonPropertyName("codec_tag_string")]
public string CodecTagString { get; set; }
///
/// Gets or sets the sample_fmt.
///
/// The sample_fmt.
[JsonPropertyName("sample_fmt")]
public string SampleFmt { get; set; }
///
/// Gets or sets the dmix_mode.
///
/// The dmix_mode.
[JsonPropertyName("dmix_mode")]
public string DmixMode { get; set; }
///
/// Gets or sets the start_pts.
///
/// The start_pts.
[JsonPropertyName("start_pts")]
public int StartPts { get; set; }
///
/// Gets or sets the is_avc.
///
/// The is_avc.
[JsonPropertyName("is_avc")]
public string IsAvc { get; set; }
///
/// Gets or sets the nal_length_size.
///
/// The nal_length_size.
[JsonPropertyName("nal_length_size")]
public string NalLengthSize { get; set; }
///
/// Gets or sets the ltrt_cmixlev.
///
/// The ltrt_cmixlev.
[JsonPropertyName("ltrt_cmixlev")]
public string LtrtCmixlev { get; set; }
///
/// Gets or sets the ltrt_surmixlev.
///
/// The ltrt_surmixlev.
[JsonPropertyName("ltrt_surmixlev")]
public string LtrtSurmixlev { get; set; }
///
/// Gets or sets the loro_cmixlev.
///
/// The loro_cmixlev.
[JsonPropertyName("loro_cmixlev")]
public string LoroCmixlev { get; set; }
///
/// Gets or sets the loro_surmixlev.
///
/// The loro_surmixlev.
[JsonPropertyName("loro_surmixlev")]
public string LoroSurmixlev { get; set; }
[JsonPropertyName("field_order")]
public string FieldOrder { get; set; }
///
/// Gets or sets the disposition.
///
/// The disposition.
[JsonPropertyName("disposition")]
public IReadOnlyDictionary Disposition { get; set; }
}
}