aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-09-30 23:33:26 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-09-30 23:33:26 -0400
commit9b937ebb9c286ea0ecef3ef20d7d4f727f4179b1 (patch)
tree275bd728dca980c361edf0929ab2415b7067c857
parent6f08e2152fa930b484705718cc3af1c7ed9ed340 (diff)
fix really high audio encoding bitrate
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs3
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs37
2 files changed, 18 insertions, 22 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 39f361458..0b0b23e12 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1440,7 +1440,8 @@ namespace MediaBrowser.Api.Playback
// Make sure we don't request a bitrate higher than the source
var currentBitrate = audioStream == null ? request.AudioBitRate.Value : audioStream.BitRate ?? request.AudioBitRate.Value;
- return request.AudioBitRate.Value;
+ // Don't encode any higher than this
+ return Math.Min(384000, request.AudioBitRate.Value);
//return Math.Min(currentBitrate, request.AudioBitRate.Value);
}
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 13d559773..bd186b5e5 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -602,33 +602,20 @@ namespace MediaBrowser.Model.Dlna
private int GetAudioBitrate(string subProtocol, int? maxTotalBitrate, int? targetAudioChannels, string targetAudioCodec, MediaStream audioStream)
{
- var defaultBitrate = audioStream == null ? 192000 : audioStream.BitRate ?? 192000;
+ int defaultBitrate = audioStream == null ? 192000 : audioStream.BitRate ?? 192000;
// Reduce the bitrate if we're downmixing
if (targetAudioChannels.HasValue && audioStream != null && audioStream.Channels.HasValue && targetAudioChannels.Value < audioStream.Channels.Value)
{
defaultBitrate = StringHelper.EqualsIgnoreCase(targetAudioCodec, "ac3") ? 192000 : 128000;
}
- if (targetAudioChannels.HasValue)
+ if (StringHelper.EqualsIgnoreCase(subProtocol, "hls"))
{
- if (targetAudioChannels.Value >= 5 && (maxTotalBitrate ?? 0) >= 1200000)
- {
- if (StringHelper.EqualsIgnoreCase(targetAudioCodec, "ac3"))
- {
- if (string.Equals(subProtocol, "hls", StringComparison.OrdinalIgnoreCase))
- {
- defaultBitrate = Math.Max(384000, defaultBitrate);
- }
- else
- {
- defaultBitrate = Math.Max(448000, defaultBitrate);
- }
- }
- else
- {
- defaultBitrate = Math.Max(320000, defaultBitrate);
- }
- }
+ defaultBitrate = Math.Min(384000, defaultBitrate);
+ }
+ else
+ {
+ defaultBitrate = Math.Min(448000, defaultBitrate);
}
int encoderAudioBitrateLimit = int.MaxValue;
@@ -647,6 +634,14 @@ namespace MediaBrowser.Model.Dlna
}
}
+ if (maxTotalBitrate.HasValue)
+ {
+ if (maxTotalBitrate.Value < 640000)
+ {
+ defaultBitrate = Math.Min(128000, defaultBitrate);
+ }
+ }
+
return Math.Min(defaultBitrate, encoderAudioBitrateLimit);
}
@@ -1223,4 +1218,4 @@ namespace MediaBrowser.Model.Dlna
return true;
}
}
-}
+} \ No newline at end of file