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

Split VP9 HEVC 10bit button. MacOS Decoder fixed to opencl

artiume 5 лет назад
Родитель
Сommit
347689e4e2
1 измененных файлов с 31 добавлено и 20 удалено
  1. 31 20
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 31 - 20
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -2579,7 +2579,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             if (_mediaEncoder.SupportsDecoder("hevc_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
                             {
                                 return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v hevc_qsv";
+                                    !encodingOptions.EnableDecodingColorDepth10Hevc) ? null : "-c:v hevc_qsv";
                             }
                             break;
                         case "mpeg2video":
@@ -2604,7 +2604,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             if (_mediaEncoder.SupportsDecoder("vp9_qsv") && encodingOptions.HardwareDecodingCodecs.Contains("vp9", StringComparer.OrdinalIgnoreCase))
                             {
                                 return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v vp9_qsv";
+                                    !encodingOptions.EnableDecodingColorDepth10Vp9) ? null : "-c:v vp9_qsv";
                             }
                             break;
                     }
@@ -2617,8 +2617,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                         case "h264":
                             if (_mediaEncoder.SupportsDecoder("h264_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
                             {
-                                return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v h264_cuvid";
+                                return "-c:v h264_cuvid";
                             }
                             break;
                         case "hevc":
@@ -2626,7 +2625,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             if (_mediaEncoder.SupportsDecoder("hevc_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
                             {
                                 return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v hevc_cuvid";
+                                    !encodingOptions.EnableDecodingColorDepth10Hevc) ? null : "-c:v hevc_cuvid";
                             }
                             break;
                         case "mpeg2video":
@@ -2657,7 +2656,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             if (_mediaEncoder.SupportsDecoder("vp9_cuvid") && encodingOptions.HardwareDecodingCodecs.Contains("vp9", StringComparer.OrdinalIgnoreCase))
                             {
                                 return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v vp9_cuvid";
+                                    !encodingOptions.EnableDecodingColorDepth10Vp9) ? null : "-c:v vp9_cuvid";
                             }
                             break;
                     }
@@ -2678,7 +2677,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             if (_mediaEncoder.SupportsDecoder("hevc_mediacodec") && encodingOptions.HardwareDecodingCodecs.Contains("hevc", StringComparer.OrdinalIgnoreCase))
                             {
                                 return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v hevc_mediacodec";
+                                    !encodingOptions.EnableDecodingColorDepth10Hevc) ? null : "-c:v hevc_mediacodec";
                             }
                             break;
                         case "mpeg2video":
@@ -2703,7 +2702,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             if (_mediaEncoder.SupportsDecoder("vp9_mediacodec") && encodingOptions.HardwareDecodingCodecs.Contains("vp9", StringComparer.OrdinalIgnoreCase))
                             {
                                 return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : "-c:v vp9_mediacodec";
+                                    !encodingOptions.EnableDecodingColorDepth10Vp9) ? null : "-c:v vp9_mediacodec";
                             }
                             break;
                     }
@@ -2749,7 +2748,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                         case "hevc":
                         case "h265":
                             return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : GetHwaccelType(state, encodingOptions, "hevc");
+                                    !encodingOptions.EnableDecodingColorDepth10Hevc) ? null : GetHwaccelType(state, encodingOptions, "hevc");
                         case "mpeg2video":
                             return GetHwaccelType(state, encodingOptions, "mpeg2video");
                         case "vc1":
@@ -2758,7 +2757,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             return GetHwaccelType(state, encodingOptions, "mpeg4");
                         case "vp9":
                             return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : GetHwaccelType(state, encodingOptions, "vp9");
+                                    !encodingOptions.EnableDecodingColorDepth10Vp9) ? null : GetHwaccelType(state, encodingOptions, "vp9");
                     }
                 }
                 else if (string.Equals(encodingOptions.HardwareAccelerationType, "vaapi", StringComparison.OrdinalIgnoreCase))
@@ -2771,7 +2770,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                         case "hevc":
                         case "h265":
                             return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : GetHwaccelType(state, encodingOptions, "hevc");
+                                    !encodingOptions.EnableDecodingColorDepth10Hevc) ? null : GetHwaccelType(state, encodingOptions, "hevc");
                         case "mpeg2video":
                             return GetHwaccelType(state, encodingOptions, "mpeg2video");
                         case "vc1":
@@ -2780,7 +2779,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                             return GetHwaccelType(state, encodingOptions, "vp8");
                         case "vp9":
                             return (isColorDepth10 &&
-                                    !encodingOptions.EnableDecodingColorDepth10) ? null : GetHwaccelType(state, encodingOptions, "vp9");
+                                    !encodingOptions.EnableDecodingColorDepth10Vp9) ? null : GetHwaccelType(state, encodingOptions, "vp9");
                     }
                 }
                 else if (string.Equals(encodingOptions.HardwareAccelerationType, "videotoolbox", StringComparison.OrdinalIgnoreCase))
@@ -2789,27 +2788,39 @@ namespace MediaBrowser.Controller.MediaEncoding
                     {
                         case "avc":
                         case "h264":
-                            if (_mediaEncoder.SupportsDecoder("h264_videotoolbox") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
+                            if (_mediaEncoder.SupportsDecoder("h264_opencl") && encodingOptions.HardwareDecodingCodecs.Contains("h264", StringComparer.OrdinalIgnoreCase))
                             {
-                                return "-c:v h264_videotoolbox";
+                                return "-c:v h264_opencl";
                             }
                             break;
                         case "mpeg2video":
-                            if (_mediaEncoder.SupportsDecoder("mpeg2_videotoolbox") && encodingOptions.HardwareDecodingCodecs.Contains("mpeg2video", StringComparer.OrdinalIgnoreCase))
+                            if (_mediaEncoder.SupportsDecoder("mpeg2_opencl") && encodingOptions.HardwareDecodingCodecs.Contains("mpeg2video", StringComparer.OrdinalIgnoreCase))
                             {
-                                return "-c:v mpeg2_videotoolbox";
+                                return "-c:v mpeg2_opencl";
                             }
                             break;
                         case "mpeg4":
-                            if (_mediaEncoder.SupportsDecoder("mpeg4_videotoolbox") && encodingOptions.HardwareDecodingCodecs.Contains("mpeg4", StringComparer.OrdinalIgnoreCase))
+                            if (_mediaEncoder.SupportsDecoder("mpeg4_opencl") && encodingOptions.HardwareDecodingCodecs.Contains("mpeg4", StringComparer.OrdinalIgnoreCase))
                             {
-                                return "-c:v mpeg4_videotoolbox";
+                                return "-c:v mpeg4_opencl";
                             }
                             break;
                         case "vc1":
-                            if (_mediaEncoder.SupportsDecoder("vc1_videotoolbox") && encodingOptions.HardwareDecodingCodecs.Contains("vc1", StringComparer.OrdinalIgnoreCase))
+                            if (_mediaEncoder.SupportsDecoder("vc1_opencl") && encodingOptions.HardwareDecodingCodecs.Contains("vc1", StringComparer.OrdinalIgnoreCase))
+                            {
+                                return "-c:v vc1_opencl";
+                            }
+                            break;
+                        case "vp8":
+                            if (_mediaEncoder.SupportsDecoder("vp8_opencl") && encodingOptions.HardwareDecodingCodecs.Contains("vc1", StringComparer.OrdinalIgnoreCase))
+                            {
+                                return "-c:v vp8_opencl";
+                            }
+                            break;
+                        case "vp9":
+                            if (_mediaEncoder.SupportsDecoder("vp9_opencl") && encodingOptions.HardwareDecodingCodecs.Contains("vc1", StringComparer.OrdinalIgnoreCase))
                             {
-                                return "-c:v vc1_videotoolbox";
+                                return "-c:v vp9_opencl;
                             }
                             break;
                     }