aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Api/Helpers/DynamicHlsHelper.cs
diff options
context:
space:
mode:
authorBond-009 <bond.009@outlook.com>2026-01-09 18:34:48 +0100
committerGitHub <noreply@github.com>2026-01-09 18:34:48 +0100
commite62b6f833984e53abaa1c9cfb1facdc84725acc4 (patch)
tree82db689b740c1cd1c304cac8d8e76707b6fb023b /Jellyfin.Api/Helpers/DynamicHlsHelper.cs
parent9931537d87b1bfee038f1ad11c26e46de7dbc110 (diff)
parent582a1d98665eba7f7d7b510633cc283fd72305e1 (diff)
Merge pull request #15959 from nyanmisaka/truehd-dts-hls-codec-string
Add TrueHD and DTS codes string for HLS
Diffstat (limited to 'Jellyfin.Api/Helpers/DynamicHlsHelper.cs')
-rw-r--r--Jellyfin.Api/Helpers/DynamicHlsHelper.cs17
1 files changed, 16 insertions, 1 deletions
diff --git a/Jellyfin.Api/Helpers/DynamicHlsHelper.cs b/Jellyfin.Api/Helpers/DynamicHlsHelper.cs
index 16e51151d..44e1c6d5a 100644
--- a/Jellyfin.Api/Helpers/DynamicHlsHelper.cs
+++ b/Jellyfin.Api/Helpers/DynamicHlsHelper.cs
@@ -754,7 +754,9 @@ public class DynamicHlsHelper
{
if (string.Equals(state.ActualOutputAudioCodec, "aac", StringComparison.OrdinalIgnoreCase))
{
- string? profile = state.GetRequestedProfiles("aac").FirstOrDefault();
+ string? profile = EncodingHelper.IsCopyCodec(state.OutputAudioCodec)
+ ? state.AudioStream?.Profile : state.GetRequestedProfiles("aac").FirstOrDefault();
+
return HlsCodecStringHelpers.GetAACString(profile);
}
@@ -788,6 +790,19 @@ public class DynamicHlsHelper
return HlsCodecStringHelpers.GetOPUSString();
}
+ if (string.Equals(state.ActualOutputAudioCodec, "truehd", StringComparison.OrdinalIgnoreCase))
+ {
+ return HlsCodecStringHelpers.GetTRUEHDString();
+ }
+
+ if (string.Equals(state.ActualOutputAudioCodec, "dts", StringComparison.OrdinalIgnoreCase))
+ {
+ // lavc only support encoding DTS core profile
+ string? profile = EncodingHelper.IsCopyCodec(state.OutputAudioCodec) ? state.AudioStream?.Profile : "DTS";
+
+ return HlsCodecStringHelpers.GetDTSString(profile);
+ }
+
return string.Empty;
}