소스 검색

fix: move trickplay specific option into TrickplayOptions (#11229)

gnattu 1 년 전
부모
커밋
be21d51742

+ 1 - 0
Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs

@@ -141,6 +141,7 @@ public class TrickplayManager : ITrickplayManager
                     width,
                     TimeSpan.FromMilliseconds(options.Interval),
                     options.EnableHwAcceleration,
+                    options.EnableHwEncoding,
                     options.ProcessThreads,
                     options.Qscale,
                     options.ProcessPriority,

+ 2 - 0
MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs

@@ -149,6 +149,7 @@ namespace MediaBrowser.Controller.MediaEncoding
         /// <param name="maxWidth">The maximum width.</param>
         /// <param name="interval">The interval.</param>
         /// <param name="allowHwAccel">Allow for hardware acceleration.</param>
+        /// <param name="enableHwEncoding">Use hardware mjpeg encoder.</param>
         /// <param name="threads">The input/output thread count for ffmpeg.</param>
         /// <param name="qualityScale">The qscale value for ffmpeg.</param>
         /// <param name="priority">The process priority for the ffmpeg process.</param>
@@ -163,6 +164,7 @@ namespace MediaBrowser.Controller.MediaEncoding
             int maxWidth,
             TimeSpan interval,
             bool allowHwAccel,
+            bool enableHwEncoding,
             int? threads,
             int? qualityScale,
             ProcessPriorityClass? priority,

+ 2 - 1
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -800,6 +800,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
             int maxWidth,
             TimeSpan interval,
             bool allowHwAccel,
+            bool enableHwEncoding,
             int? threads,
             int? qualityScale,
             ProcessPriorityClass? priority,
@@ -828,7 +829,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 MediaPath = inputFile,
                 OutputVideoCodec = "mjpeg"
             };
-            var vidEncoder = options.AllowMjpegEncoding ? encodingHelper.GetVideoEncoder(jobState, options) : jobState.OutputVideoCodec;
+            var vidEncoder = enableHwEncoding ? encodingHelper.GetVideoEncoder(jobState, options) : jobState.OutputVideoCodec;
 
             // Get input and filter arguments
             var inputArg = encodingHelper.GetInputArgument(jobState, options, container).Trim();

+ 0 - 6
MediaBrowser.Model/Configuration/EncodingOptions.cs

@@ -51,7 +51,6 @@ public class EncodingOptions
         EnableHardwareEncoding = true;
         AllowHevcEncoding = false;
         AllowAv1Encoding = false;
-        AllowMjpegEncoding = false;
         EnableSubtitleExtraction = true;
         AllowOnDemandMetadataBasedKeyframeExtractionForExtensions = new[] { "mkv" };
         HardwareDecodingCodecs = new string[] { "h264", "vc1" };
@@ -262,11 +261,6 @@ public class EncodingOptions
     /// </summary>
     public bool AllowAv1Encoding { get; set; }
 
-    /// <summary>
-    /// Gets or sets a value indicating whether MJPEG encoding is enabled.
-    /// </summary>
-    public bool AllowMjpegEncoding { get; set; }
-
     /// <summary>
     /// Gets or sets a value indicating whether subtitle extraction is enabled.
     /// </summary>

+ 5 - 0
MediaBrowser.Model/Configuration/TrickplayOptions.cs

@@ -13,6 +13,11 @@ public class TrickplayOptions
     /// </summary>
     public bool EnableHwAcceleration { get; set; } = false;
 
+    /// <summary>
+    /// Gets or sets a value indicating whether or not to use HW accelerated MJPEG encoding.
+    /// </summary>
+    public bool EnableHwEncoding { get; set; } = false;
+
     /// <summary>
     /// Gets or sets the behavior used by trickplay provider on library scan/update.
     /// </summary>