From a0df73b21dfdfde894760cf70b81dfd01b1c70f8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 7 Oct 2013 14:22:21 -0400 Subject: [PATCH] update stream copy bitrate --- .../Playback/Hls/BaseHlsService.cs | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs index 2fb7f81421..787727cd3a 100644 --- a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs @@ -120,8 +120,9 @@ namespace MediaBrowser.Api.Playback.Hls await WaitForMinimumSegmentCount(playlist, 3).ConfigureAwait(false); } - var audioBitrate = GetAudioBitrateParam(state) ?? 0; - var videoBitrate = GetVideoBitrateParam(state) ?? 0; + int audioBitrate; + int videoBitrate; + GetPlaylistBitrates(state, out audioBitrate, out videoBitrate); var appendBaselineStream = false; var baselineStreamBitrate = 64000; @@ -145,6 +146,37 @@ namespace MediaBrowser.Api.Playback.Hls } } + /// + /// Gets the playlist bitrates. + /// + /// The state. + /// The audio bitrate. + /// The video bitrate. + private void GetPlaylistBitrates(StreamState state, out int audioBitrate, out int videoBitrate) + { + var audioBitrateParam = GetAudioBitrateParam(state); + var videoBitrateParam = GetVideoBitrateParam(state); + + if (!audioBitrateParam.HasValue) + { + if (state.AudioStream != null) + { + audioBitrateParam = state.AudioStream.BitRate; + } + } + + if (!videoBitrateParam.HasValue) + { + if (state.VideoStream != null) + { + videoBitrateParam = state.VideoStream.BitRate; + } + } + + audioBitrate = audioBitrateParam ?? 0; + videoBitrate = videoBitrateParam ?? 0; + } + private string GetMasterPlaylistFileText(string firstPlaylist, int bitrate, bool includeBaselineStream, int baselineStreamBitrate) { var builder = new StringBuilder();