aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/Playback/Hls/VideoHlsService.cs7
-rw-r--r--MediaBrowser.Api/Playback/MediaInfoService.cs21
2 files changed, 22 insertions, 6 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
index 610628ced..5f427146e 100644
--- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
@@ -86,11 +86,10 @@ namespace MediaBrowser.Api.Playback.Hls
// See if we can save come cpu cycles by avoiding encoding
if (codec.Equals("copy", StringComparison.OrdinalIgnoreCase))
{
- return state.VideoStream != null && IsH264(state.VideoStream) ?
- args + " -bsf:v h264_mp4toannexb" :
- args;
+ // if h264_mp4toannexb is ever added, do not use it for live tv
+ return args;
}
-
+
var keyFrameArg = string.Format(" -force_key_frames \"expr:gte(t,n_forced*{0})\"",
state.SegmentLength.ToString(UsCulture));
diff --git a/MediaBrowser.Api/Playback/MediaInfoService.cs b/MediaBrowser.Api/Playback/MediaInfoService.cs
index 2bf61f90b..ffe7c50c8 100644
--- a/MediaBrowser.Api/Playback/MediaInfoService.cs
+++ b/MediaBrowser.Api/Playback/MediaInfoService.cs
@@ -227,7 +227,7 @@ namespace MediaBrowser.Api.Playback
SetDeviceSpecificData(item, mediaSource, profile, auth, maxBitrate, startTimeTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, result.PlaySessionId);
}
- SortMediaSources(result);
+ SortMediaSources(result, maxBitrate);
}
private void SetDeviceSpecificData(BaseItem item,
@@ -375,7 +375,7 @@ namespace MediaBrowser.Api.Playback
}
}
- private void SortMediaSources(PlaybackInfoResponse result)
+ private void SortMediaSources(PlaybackInfoResponse result, int? maxBitrate)
{
var originalList = result.MediaSources.ToList();
@@ -409,6 +409,23 @@ namespace MediaBrowser.Api.Playback
return 1;
}
+ }).ThenBy(i =>
+ {
+ if (maxBitrate.HasValue)
+ {
+ if (i.Bitrate.HasValue)
+ {
+ if (i.Bitrate.Value <= maxBitrate.Value)
+ {
+ return 0;
+ }
+
+ return 2;
+ }
+ }
+
+ return 1;
+
}).ThenBy(originalList.IndexOf)
.ToList();
}