aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/BaseStreamingService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-06-30 13:40:46 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-06-30 13:40:46 -0400
commit8ae316a2f3333106921e7bc587bc990a8899c613 (patch)
treebe4e6947b504ffdcc64bcafd63a476b125f05e36 /MediaBrowser.Api/Playback/BaseStreamingService.cs
parentf526a07edd13866644dbbee05a6caec85c3e10e1 (diff)
fixes #859 - Support adaptive bitrate streaming
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs17
1 files changed, 11 insertions, 6 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 1b8234973..380ece2f2 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1417,7 +1417,6 @@ namespace MediaBrowser.Api.Playback
List<MediaStream> mediaStreams = null;
state.ItemType = item.GetType().Name;
- state.ReadInputAtNativeFramerate = true;
if (item is ILiveTvRecording)
{
@@ -1479,6 +1478,7 @@ namespace MediaBrowser.Api.Playback
state.IsInputVideo = string.Equals(channel.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
mediaStreams = new List<MediaStream>();
+ state.ReadInputAtNativeFramerate = true;
state.OutputAudioSync = "1000";
state.DeInterlace = true;
state.InputVideoSync = "-1";
@@ -1489,13 +1489,13 @@ namespace MediaBrowser.Api.Playback
}
else if (item is IChannelMediaItem)
{
- var source = await GetChannelMediaInfo(request.Id, request.MediaSourceId, cancellationToken).ConfigureAwait(false);
+ var mediaSource = await GetChannelMediaInfo(request.Id, request.MediaSourceId, cancellationToken).ConfigureAwait(false);
state.IsInputVideo = string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
- state.InputProtocol = source.Protocol;
- state.MediaPath = source.Path;
+ state.InputProtocol = mediaSource.Protocol;
+ state.MediaPath = mediaSource.Path;
state.RunTimeTicks = item.RunTimeTicks;
- state.RemoteHttpHeaders = source.RequiredHttpHeaders;
- mediaStreams = source.MediaStreams;
+ state.RemoteHttpHeaders = mediaSource.RequiredHttpHeaders;
+ mediaStreams = mediaSource.MediaStreams;
}
else
{
@@ -1539,6 +1539,11 @@ namespace MediaBrowser.Api.Playback
state.DeInterlace = true;
}
+ if (state.InputProtocol == MediaProtocol.Rtmp)
+ {
+ state.ReadInputAtNativeFramerate = true;
+ }
+
var videoRequest = request as VideoStreamRequest;
AttachMediaStreamInfo(state, mediaStreams, videoRequest, url);