Преглед изворни кода

Fix the disordered color in Dolby Vision remuxing on Safari

Nyanmisaka пре 3 година
родитељ
комит
c69e79f64d
1 измењених фајлова са 12 додато и 2 уклоњено
  1. 12 2
      Jellyfin.Api/Controllers/DynamicHlsController.cs

+ 12 - 2
Jellyfin.Api/Controllers/DynamicHlsController.cs

@@ -1773,13 +1773,23 @@ namespace Jellyfin.Api.Controllers
 
 
             var args = "-codec:v:0 " + codec;
             var args = "-codec:v:0 " + codec;
 
 
-            // Prefer hvc1 to hev1.
             if (string.Equals(state.ActualOutputVideoCodec, "h265", StringComparison.OrdinalIgnoreCase)
             if (string.Equals(state.ActualOutputVideoCodec, "h265", StringComparison.OrdinalIgnoreCase)
                 || string.Equals(state.ActualOutputVideoCodec, "hevc", StringComparison.OrdinalIgnoreCase)
                 || string.Equals(state.ActualOutputVideoCodec, "hevc", StringComparison.OrdinalIgnoreCase)
                 || string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase)
                 || string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase)
                 || string.Equals(codec, "hevc", StringComparison.OrdinalIgnoreCase))
                 || string.Equals(codec, "hevc", StringComparison.OrdinalIgnoreCase))
             {
             {
-                args += " -tag:v:0 hvc1";
+                if (EncodingHelper.IsCopyCodec(codec)
+                    && (string.Equals(state.VideoStream.CodecTag, "dvh1", StringComparison.OrdinalIgnoreCase)
+                        || string.Equals(state.VideoStream.CodecTag, "dvhe", StringComparison.OrdinalIgnoreCase)))
+                {
+                    // Prefer dvh1 to dvhe
+                    args += " -tag:v:0 dvh1";
+                }
+                else
+                {
+                    // Prefer hvc1 to hev1
+                    args += " -tag:v:0 hvc1";
+                }
             }
             }
 
 
             // if  (state.EnableMpegtsM2TsMode)
             // if  (state.EnableMpegtsM2TsMode)