From 2f3e5cfa06bf0a59dcb1b651c9d9f5b1ba9849ed Mon Sep 17 00:00:00 2001 From: gnattu Date: Fri, 16 Feb 2024 01:08:17 +0800 Subject: [PATCH] fix: correctly set the supported formats of videotoolbox tone mapping Signed-off-by: gnattu --- .../MediaEncoding/EncodingHelper.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 2ffebfa542..c3d5e58471 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -272,8 +272,7 @@ namespace MediaBrowser.Controller.MediaEncoding var isNvdecDecoder = vidDecoder.Contains("cuda", StringComparison.OrdinalIgnoreCase); var isVaapiDecoder = vidDecoder.Contains("vaapi", StringComparison.OrdinalIgnoreCase); var isD3d11vaDecoder = vidDecoder.Contains("d3d11va", StringComparison.OrdinalIgnoreCase); - var isVideoToolBoxDecoder = vidDecoder.Contains("videotoolbox", StringComparison.OrdinalIgnoreCase); - return isSwDecoder || isNvdecDecoder || isVaapiDecoder || isD3d11vaDecoder || isVideoToolBoxDecoder; + return isSwDecoder || isNvdecDecoder || isVaapiDecoder || isD3d11vaDecoder; } return state.VideoStream.VideoRange == VideoRange.HDR @@ -317,8 +316,11 @@ namespace MediaBrowser.Controller.MediaEncoding { return false; } + + // Certain DV profile 5 video works in Safari with direct playing, but the VideoToolBox does not produce correct mapping results with trascoding. + // All other HDR formats working. return state.VideoStream.VideoRange == VideoRange.HDR - && state.VideoStream.VideoRangeType == VideoRangeType.HDR10; + && state.VideoStream.VideoRangeType is VideoRangeType.HDR10 or VideoRangeType.HLG or VideoRangeType.HDR10Plus; } /// @@ -5025,7 +5027,7 @@ namespace MediaBrowser.Controller.MediaEncoding if (supportsHwScale) { var hwScaleFilter = GetHwScaleFilter("vt", string.Empty, inW, inH, reqW, reqH, reqMaxW, reqMaxH); - if (useHwToneMapping) + if (true) { hwScaleFilter = string.IsNullOrEmpty(hwScaleFilter) ? "scale_vt=0:0:bt709:bt709:bt709" : string.Format(CultureInfo.InvariantCulture, hwScaleFilter, ":bt709:bt709:bt709");