diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-06-30 13:40:46 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-06-30 13:40:46 -0400 |
| commit | 8ae316a2f3333106921e7bc587bc990a8899c613 (patch) | |
| tree | be4e6947b504ffdcc64bcafd63a476b125f05e36 /MediaBrowser.Api/Playback/BaseStreamingService.cs | |
| parent | f526a07edd13866644dbbee05a6caec85c3e10e1 (diff) | |
fixes #859 - Support adaptive bitrate streaming
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 17 |
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); |
