Răsfoiți Sursa

fix outputSize

nyanmisaka 4 ani în urmă
părinte
comite
54349fc945
1 a modificat fișierele cu 37 adăugiri și 27 ștergeri
  1. 37 27
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 37 - 27
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -1639,35 +1639,45 @@ namespace MediaBrowser.Controller.MediaEncoding
             var outputSizeParam = ReadOnlySpan<char>.Empty;
             var outputSizeParam = ReadOnlySpan<char>.Empty;
             var request = state.BaseRequest;
             var request = state.BaseRequest;
 
 
-            // Add resolution params, if specified
-            if (request.Width.HasValue
-                || request.Height.HasValue
-                || request.MaxHeight.HasValue
-                || request.MaxWidth.HasValue)
-            {
-                outputSizeParam = GetOutputSizeParam(state, options, outputVideoCodec).TrimEnd('"');
-
-                // All possible beginning of video filters
-                // Don't break the order
-                string[] beginOfParam = new[]
-                {
-                    "hwupload,tonemap_opencl",
-                    "hwupload=extra_hw_frames",
-                    "vpp",
-                    "hwdownload",
-                    "format",
-                    "yadif",
-                    "scale"
-                };
+            outputSizeParam = GetOutputSizeParam(state, options, outputVideoCodec).TrimEnd('"');
+
+            // All possible beginning of video filters
+            // Don't break the order
+            string[] beginOfOutputSizeParam = new[]
+            {
+                // for tonemap_opencl
+                "hwupload,tonemap_opencl",
+
+                // hwupload=extra_hw_frames=64,vpp_qsv (for overlay_qsv on linux)
+                "hwupload=extra_hw_frames",
+
+                // vpp_qsv
+                "vpp",
+
+                // hwdownload,format=p010le (hardware decode + software encode for vaapi)
+                "hwdownload",
+
+                // format=nv12|vaapi,hwupload,scale_vaapi
+                "format",
+
+                // bwdif,scale=expr
+                "bwdif",
 
 
-                for (int i = 0, index = -1; i < beginOfParam.Length; i++)
+                // yadif,scale=expr
+                "yadif",
+
+                // scale=expr
+                "scale"
+            };
+
+            var index = -1;
+            foreach (var param in beginOfOutputSizeParam)
+            {
+                index = outputSizeParam.IndexOf(param, StringComparison.OrdinalIgnoreCase);
+                if (index != -1)
                 {
                 {
-                    index = outputSizeParam.IndexOf(beginOfParam[i], StringComparison.OrdinalIgnoreCase);
-                    if (index != -1)
-                    {
-                        outputSizeParam = outputSizeParam.Slice(index);
-                        break;
-                    }
+                    outputSizeParam = outputSizeParam.Slice(index);
+                    break;
                 }
                 }
             }
             }