Просмотр исходного кода

Merge pull request #3728 from jellyfin/qsv-cutter

Adjust priority in outputSizeParam cutter

(cherry picked from commit 47e63def20c0f3bc3d63579be7ac28cc1bf20bc2)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
Joshua M. Boniface 4 лет назад
Родитель
Сommit
7402679a99
1 измененных файлов с 12 добавлено и 6 удалено
  1. 12 6
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 12 - 6
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -1606,42 +1606,48 @@ namespace MediaBrowser.Controller.MediaEncoding
             {
                 outputSizeParam = GetOutputSizeParam(state, options, outputVideoCodec).TrimEnd('"');
 
-                var index = outputSizeParam.IndexOf("hwdownload", StringComparison.OrdinalIgnoreCase);
+                // hwupload=extra_hw_frames=64,vpp_qsv (for overlay_qsv on linux)
+                var index = outputSizeParam.IndexOf("hwupload=extra_hw_frames", StringComparison.OrdinalIgnoreCase);
                 if (index != -1)
                 {
                     outputSizeParam = outputSizeParam.Substring(index);
                 }
                 else
                 {
-                    index = outputSizeParam.IndexOf("hwupload=extra_hw_frames", StringComparison.OrdinalIgnoreCase);
+                    // vpp_qsv
+                    index = outputSizeParam.IndexOf("vpp", StringComparison.OrdinalIgnoreCase);
                     if (index != -1)
                     {
                         outputSizeParam = outputSizeParam.Substring(index);
                     }
                     else
                     {
-                        index = outputSizeParam.IndexOf("format", StringComparison.OrdinalIgnoreCase);
+                        // hwdownload,format=p010le (hardware decode + software encode for vaapi)
+                        index = outputSizeParam.IndexOf("hwdownload", StringComparison.OrdinalIgnoreCase);
                         if (index != -1)
                         {
                             outputSizeParam = outputSizeParam.Substring(index);
                         }
                         else
                         {
-                            index = outputSizeParam.IndexOf("yadif", StringComparison.OrdinalIgnoreCase);
+                            // format=nv12|vaapi,hwupload,scale_vaapi
+                            index = outputSizeParam.IndexOf("format", StringComparison.OrdinalIgnoreCase);
                             if (index != -1)
                             {
                                 outputSizeParam = outputSizeParam.Substring(index);
                             }
                             else
                             {
-                                index = outputSizeParam.IndexOf("scale", StringComparison.OrdinalIgnoreCase);
+                                // yadif,scale=expr
+                                index = outputSizeParam.IndexOf("yadif", StringComparison.OrdinalIgnoreCase);
                                 if (index != -1)
                                 {
                                     outputSizeParam = outputSizeParam.Substring(index);
                                 }
                                 else
                                 {
-                                    index = outputSizeParam.IndexOf("vpp", StringComparison.OrdinalIgnoreCase);
+                                    // scale=expr
+                                    index = outputSizeParam.IndexOf("scale", StringComparison.OrdinalIgnoreCase);
                                     if (index != -1)
                                     {
                                         outputSizeParam = outputSizeParam.Substring(index);