Просмотр исходного кода

Fix AC-4 Sample rate check

Some Audio codec will have a null CodecTag, check for that to avoid null reference

If the client already requests a specific sample rate, use that instead of our default sample rate for AC-4

Signed-off-by: gnattu <gnattuoc@me.com>
gnattu 10 месяцев назад
Родитель
Сommit
992eed5ef7
1 измененных файлов с 5 добавлено и 6 удалено
  1. 5 6
      Jellyfin.Api/Controllers/DynamicHlsController.cs

+ 5 - 6
Jellyfin.Api/Controllers/DynamicHlsController.cs

@@ -1735,18 +1735,17 @@ public class DynamicHlsController : BaseJellyfinApiController
             }
         }
 
-        if (state.AudioStream is not null && state.AudioStream.CodecTag.Equals("ac-4", StringComparison.Ordinal))
+        if (state.OutputAudioSampleRate.HasValue)
+        {
+            args += " -ar " + state.OutputAudioSampleRate.Value.ToString(CultureInfo.InvariantCulture);
+        }
+        else if (state.AudioStream?.CodecTag is not null && state.AudioStream.CodecTag.Equals("ac-4", StringComparison.Ordinal))
         {
             // ac-4 audio tends to hava a super weird sample rate that will fail most encoders
             // force resample it to 48KHz
             args += " -ar 48000";
         }
 
-        if (state.OutputAudioSampleRate.HasValue)
-        {
-            args += " -ar " + state.OutputAudioSampleRate.Value.ToString(CultureInfo.InvariantCulture);
-        }
-
         args += _encodingHelper.GetAudioFilterParam(state, _encodingOptions);
 
         return args;