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

This commit is contained in:
artiume 2020-05-29 09:49:15 -04:00 committed by Vasily
parent 4999831604
commit 347689e4e2

View file

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