aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs')
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs91
1 files changed, 91 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs
new file mode 100644
index 000000000..a988c2f97
--- /dev/null
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingJobOptions.cs
@@ -0,0 +1,91 @@
+using MediaBrowser.Model.Dlna;
+
+namespace MediaBrowser.Controller.MediaEncoding
+{
+ public class EncodingJobOptions
+ {
+ public string OutputContainer { 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 SubtitleDeliveryMethod SubtitleMethod { 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 bool? Cabac { get; set; }
+
+ 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.AudioCodec;
+ MaxAudioChannels = info.MaxAudioChannels;
+ AudioBitRate = info.AudioBitrate;
+ AudioSampleRate = info.TargetAudioSampleRate;
+ DeviceProfile = deviceProfile;
+ VideoCodec = info.VideoCodec;
+ VideoBitRate = info.VideoBitrate;
+ AudioStreamIndex = info.AudioStreamIndex;
+ SubtitleStreamIndex = info.SubtitleStreamIndex;
+ MaxRefFrames = info.MaxRefFrames;
+ MaxVideoBitDepth = info.MaxVideoBitDepth;
+ SubtitleMethod = info.SubtitleDeliveryMethod;
+ Cabac = info.Cabac;
+ Context = info.Context;
+ }
+ }
+}