diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-04-09 14:00:30 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-04-09 14:00:30 -0400 |
| commit | 1b549adf0fae6d54a2bd1187ce4013ef802b85f2 (patch) | |
| tree | daf68d43394e65736ddd59b8c8c6fc645011cc7f /MediaBrowser.Api | |
| parent | 3cb2043028875667ee1074266cc9b30eb05a9b09 (diff) | |
updated translations
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/Playback/MediaInfoService.cs | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/MediaBrowser.Api/Playback/MediaInfoService.cs b/MediaBrowser.Api/Playback/MediaInfoService.cs index 6e5af261c8..c71048b0da 100644 --- a/MediaBrowser.Api/Playback/MediaInfoService.cs +++ b/MediaBrowser.Api/Playback/MediaInfoService.cs @@ -141,19 +141,13 @@ namespace MediaBrowser.Api.Playback } } - var maxBitrate = request.MaxStreamingBitrate; - - if (_config.Configuration.RemoteClientBitrateLimit > 0 && !_networkManager.IsInLocalNetwork(Request.RemoteIp)) - { - maxBitrate = Math.Min(maxBitrate ?? _config.Configuration.RemoteClientBitrateLimit, _config.Configuration.RemoteClientBitrateLimit); - } - var info = await GetPlaybackInfo(request.Id, request.UserId, new[] { MediaType.Audio, MediaType.Video }, request.MediaSourceId, request.LiveStreamId).ConfigureAwait(false); if (profile != null) { var mediaSourceId = request.MediaSourceId; - SetDeviceSpecificData(request.Id, info, profile, authInfo, maxBitrate, request.StartTimeTicks ?? 0, mediaSourceId, request.AudioStreamIndex, request.SubtitleStreamIndex); + + SetDeviceSpecificData(request.Id, info, profile, authInfo, request.MaxStreamingBitrate, request.StartTimeTicks ?? 0, mediaSourceId, request.AudioStreamIndex, request.SubtitleStreamIndex); } return ToOptimizedResult(info); @@ -246,8 +240,7 @@ namespace MediaBrowser.Api.Playback Context = EncodingContext.Streaming, DeviceId = auth.DeviceId, ItemId = item.Id.ToString("N"), - Profile = profile, - MaxBitrate = maxBitrate + Profile = profile }; if (string.Equals(mediaSourceId, mediaSource.Id, StringComparison.OrdinalIgnoreCase)) @@ -263,6 +256,7 @@ namespace MediaBrowser.Api.Playback // Dummy this up to fool StreamBuilder mediaSource.SupportsDirectStream = true; + options.MaxBitrate = maxBitrate; // The MediaSource supports direct stream, now test to see if the client supports it var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ? @@ -285,6 +279,8 @@ namespace MediaBrowser.Api.Playback if (mediaSource.SupportsDirectStream) { + options.MaxBitrate = GetMaxBitrate(maxBitrate); + // The MediaSource supports direct stream, now test to see if the client supports it var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ? streamBuilder.BuildAudioItem(options) : @@ -303,6 +299,8 @@ namespace MediaBrowser.Api.Playback if (mediaSource.SupportsTranscoding) { + options.MaxBitrate = GetMaxBitrate(maxBitrate); + // The MediaSource supports direct stream, now test to see if the client supports it var streamInfo = string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase) ? streamBuilder.BuildAudioItem(options) : @@ -324,6 +322,18 @@ namespace MediaBrowser.Api.Playback } } + private int? GetMaxBitrate(int? clientMaxBitrate) + { + var maxBitrate = clientMaxBitrate; + + if (_config.Configuration.RemoteClientBitrateLimit > 0 && !_networkManager.IsInLocalNetwork(Request.RemoteIp)) + { + maxBitrate = Math.Min(maxBitrate ?? _config.Configuration.RemoteClientBitrateLimit, _config.Configuration.RemoteClientBitrateLimit); + } + + return maxBitrate; + } + private void SetDeviceSpecificSubtitleInfo(StreamInfo info, MediaSourceInfo mediaSource, string accessToken) { var profiles = info.GetSubtitleProfiles(false, "-", accessToken); |
