aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2022-05-08 15:23:58 -0600
committercrobibero <cody@robibe.ro>2022-05-20 18:30:57 -0400
commit1922ee153e4149530875686212353de578a2932a (patch)
tree47e3fe731d2bb908e67ce76da9d43dccc112ec4c /MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
parent47d150565d7c7eeffc037be5736f99d9e850b143 (diff)
Merge pull request #7716 from Shadowghost/opus-fix
Respect limited opus sampling rates when building trancoding command (cherry picked from commit 5a9afb0874b0862f6184478003332219796ee73b) Signed-off-by: crobibero <cody@robibe.ro>
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs')
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs16
1 files changed, 13 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index 1851a9f0c..54b41a6d2 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -5370,12 +5370,22 @@ namespace MediaBrowser.Controller.MediaEncoding
audioTranscodeParams.Add("-ac " + state.OutputAudioChannels.Value.ToString(CultureInfo.InvariantCulture));
}
- // opus will fail on 44100
if (!string.Equals(state.OutputAudioCodec, "opus", StringComparison.OrdinalIgnoreCase))
{
- if (state.OutputAudioSampleRate.HasValue)
+ // opus only supports specific sampling rates
+ var sampleRate = state.OutputAudioSampleRate;
+ if (sampleRate.HasValue)
{
- audioTranscodeParams.Add("-ar " + state.OutputAudioSampleRate.Value.ToString(CultureInfo.InvariantCulture));
+ var sampleRateValue = sampleRate.Value switch
+ {
+ <= 8000 => 8000,
+ <= 12000 => 12000,
+ <= 16000 => 16000,
+ <= 24000 => 24000,
+ _ => 48000
+ };
+
+ audioTranscodeParams.Add("-ar " + sampleRateValue.ToString(CultureInfo.InvariantCulture));
}
}