Browse Source

Backport pull request #15556 from jellyfin/release-10.11.z

Prevent copying HDR streams when only SDR is supported

Original-merge: 1e7e46cb8212385f86564b92d111ad80464f45d0

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
gnattu 2 days ago
parent
commit
8cd6ef37c4
1 changed files with 7 additions and 0 deletions
  1. 7 0
      MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

+ 7 - 0
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -2378,6 +2378,13 @@ namespace MediaBrowser.Controller.MediaEncoding
                 var requestHasSDR = requestedRangeTypes.Contains(VideoRangeType.SDR.ToString(), StringComparison.OrdinalIgnoreCase);
                 var requestHasDOVI = requestedRangeTypes.Contains(VideoRangeType.DOVI.ToString(), StringComparison.OrdinalIgnoreCase);
 
+                // If SDR is the only supported range, we should not copy any of the HDR streams.
+                // All the following copy check assumes at least one HDR format is supported.
+                if (requestedRangeTypes.Length == 1 && requestHasSDR && videoStream.VideoRangeType != VideoRangeType.SDR)
+                {
+                    return false;
+                }
+
                 // If the client does not support DOVI and the video stream is DOVI without fallback, we should not copy it.
                 if (!requestHasDOVI && videoStream.VideoRangeType == VideoRangeType.DOVI)
                 {