diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-13 00:11:54 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-13 00:11:54 -0500 |
| commit | eec9e0482525c400e9dc7cb17bc000434adba105 (patch) | |
| tree | 73f51bc882804ff92b82d1e85a46a6cec10b6d51 /MediaBrowser.Api/Playback/BaseStreamingService.cs | |
| parent | 9254c37d52af3d16ec9e46b3e211ecc7dc4f1617 (diff) | |
take photos into the core
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index f91a35dca..fa4969878 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -1160,6 +1160,72 @@ namespace MediaBrowser.Api.Playback } /// <summary> + /// Parses the parameters. + /// </summary> + /// <param name="request">The request.</param> + private void ParseParams(StreamRequest request) + { + var vals = request.Params.Split(';'); + + var videoRequest = request as VideoStreamRequest; + + for (var i = 0; i < vals.Length; i++) + { + var val = vals[i]; + + if (string.IsNullOrWhiteSpace(val)) + { + continue; + } + + if (i == 0) + { + request.DeviceId = val; + } + else if (i == 1) + { + if (videoRequest != null) + { + videoRequest.VideoCodec = (VideoCodecs)Enum.Parse(typeof(VideoCodecs), val, true); + } + } + else if (i == 2) + { + request.AudioCodec = (AudioCodecs)Enum.Parse(typeof(AudioCodecs), val, true); + } + else if (i == 3) + { + if (videoRequest != null) + { + videoRequest.AudioStreamIndex = int.Parse(val, UsCulture); + } + } + else if (i == 4) + { + if (videoRequest != null) + { + videoRequest.SubtitleStreamIndex = int.Parse(val, UsCulture); + } + } + else if (i == 5) + { + if (videoRequest != null) + { + videoRequest.VideoBitRate = int.Parse(val, UsCulture); + } + } + else if (i == 6) + { + request.AudioBitRate = int.Parse(val, UsCulture); + } + else if (i == 7) + { + request.AudioChannels = int.Parse(val, UsCulture); + } + } + } + + /// <summary> /// Gets the state. /// </summary> /// <param name="request">The request.</param> @@ -1167,6 +1233,11 @@ namespace MediaBrowser.Api.Playback /// <returns>StreamState.</returns> protected async Task<StreamState> GetState(StreamRequest request, CancellationToken cancellationToken) { + if (!string.IsNullOrWhiteSpace(request.Params)) + { + ParseParams(request); + } + if (request.ThrowDebugError) { throw new InvalidOperationException("You asked for a debug error, you got one."); |
