| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | using MediaBrowser.Model.Dlna;namespace MediaBrowser.Controller.MediaEncoding{    public class EncodingJobOptions    {        public string OutputContainer { get; set; }        public string OutputDirectory { get; set; }        public long? StartTimeTicks { get; set; }        public int? Width { get; set; }        public int? Height { get; set; }        public int? MaxWidth { get; set; }        public int? MaxHeight { get; set; }        public bool Static = false;        public float? Framerate { get; set; }        public float? MaxFramerate { get; set; }        public string Profile { get; set; }        public int? Level { get; set; }        public string DeviceId { get; set; }        public string ItemId { get; set; }        public string MediaSourceId { get; set; }        public string AudioCodec { get; set; }        public bool EnableAutoStreamCopy { get; set; }        public int? MaxAudioChannels { get; set; }        public int? AudioChannels { get; set; }        public int? AudioBitRate { get; set; }        public int? AudioSampleRate { get; set; }           public DeviceProfile DeviceProfile { get; set; }        public EncodingContext Context { get; set; }        public string VideoCodec { get; set; }        public int? VideoBitRate { get; set; }        public int? AudioStreamIndex { get; set; }        public int? VideoStreamIndex { get; set; }        public int? SubtitleStreamIndex { get; set; }        public int? MaxRefFrames { get; set; }        public int? MaxVideoBitDepth { get; set; }        public int? CpuCoreLimit { get; set; }        public bool ReadInputAtNativeFramerate { get; set; }        public SubtitleDeliveryMethod SubtitleMethod { get; set; }        public bool CopyTimestamps { get; set; }        /// <summary>        /// Gets a value indicating whether this instance has fixed resolution.        /// </summary>        /// <value><c>true</c> if this instance has fixed resolution; otherwise, <c>false</c>.</value>        public bool HasFixedResolution        {            get            {                return Width.HasValue || Height.HasValue;            }        }        public EncodingJobOptions()        {                    }        public EncodingJobOptions(StreamInfo info, DeviceProfile deviceProfile)        {            OutputContainer = info.Container;            StartTimeTicks = info.StartPositionTicks;            MaxWidth = info.MaxWidth;            MaxHeight = info.MaxHeight;            MaxFramerate = info.MaxFramerate;            Profile = info.VideoProfile;            Level = info.VideoLevel;            ItemId = info.ItemId;            MediaSourceId = info.MediaSourceId;            AudioCodec = info.TargetAudioCodec;            MaxAudioChannels = info.MaxAudioChannels;            AudioBitRate = info.AudioBitrate;            AudioSampleRate = info.TargetAudioSampleRate;            DeviceProfile = deviceProfile;            VideoCodec = info.VideoCodec;            VideoBitRate = info.VideoBitrate;            AudioStreamIndex = info.AudioStreamIndex;            MaxRefFrames = info.MaxRefFrames;            MaxVideoBitDepth = info.MaxVideoBitDepth;            SubtitleMethod = info.SubtitleDeliveryMethod;            Context = info.Context;            if (info.SubtitleDeliveryMethod != SubtitleDeliveryMethod.External)            {                SubtitleStreamIndex = info.SubtitleStreamIndex;            }        }    }}
 |