Jelajahi Sumber

fix: correctly set the supported formats of videotoolbox tone mapping

Signed-off-by: gnattu <gnattuoc@me.com>
gnattu 1 tahun lalu
induk
melakukan
2f3e5cfa06
1 mengubah file dengan 6 tambahan dan 4 penghapusan
  1. 6 4
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 6 - 4
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;
         }
 
         /// <summary>
@@ -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");