diff options
| author | gnattu <gnattuoc@me.com> | 2024-07-18 11:45:16 +0800 |
|---|---|---|
| committer | gnattu <gnattuoc@me.com> | 2024-07-18 11:45:16 +0800 |
| commit | 992eed5ef7f2cfb3882e5670cca76b09d87cf9df (patch) | |
| tree | b1270b9eed8647486d5cb39dd8dfad6f765950d0 | |
| parent | 5262439300884680b1425b94de9c2f9c898d83ae (diff) | |
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>
| -rw-r--r-- | Jellyfin.Api/Controllers/DynamicHlsController.cs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/Jellyfin.Api/Controllers/DynamicHlsController.cs b/Jellyfin.Api/Controllers/DynamicHlsController.cs index 2201225a8..ccaa5b19a 100644 --- a/Jellyfin.Api/Controllers/DynamicHlsController.cs +++ b/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; |
