diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-03-29 18:38:32 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-03-29 18:38:32 -0400 |
| commit | 5474215141d92c4012f387d6d9ebe9116ca74abc (patch) | |
| tree | dec40a098880fe76b28b4a2d100a394442ea0ded /MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs | |
| parent | 66ea0b256686b15f01a062cc5deaaf445905f4fb (diff) | |
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs index 64b1f2c89..e832142a9 100644 --- a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs +++ b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs @@ -316,7 +316,7 @@ namespace MediaBrowser.Server.Implementations.Library return GetStaticMediaSources(item, enablePathSubstitution).FirstOrDefault(i => string.Equals(i.Id, mediaSourceId, StringComparison.OrdinalIgnoreCase)); } - private readonly ConcurrentDictionary<string, LiveStreamInfo> _openStreams = new ConcurrentDictionary<string, LiveStreamInfo>(); + private readonly ConcurrentDictionary<string, LiveStreamInfo> _openStreams = new ConcurrentDictionary<string, LiveStreamInfo>(StringComparer.OrdinalIgnoreCase); private readonly SemaphoreSlim _liveStreamSemaphore = new SemaphoreSlim(1, 1); public async Task<LiveStreamResponse> OpenLiveStream(LiveStreamRequest request, bool enableAutoClose, CancellationToken cancellationToken) @@ -330,6 +330,11 @@ namespace MediaBrowser.Server.Implementations.Library var mediaSource = await provider.OpenMediaSource(tuple.Item2, cancellationToken).ConfigureAwait(false); + if (string.IsNullOrWhiteSpace(mediaSource.LiveStreamId)) + { + throw new InvalidOperationException(string.Format("{0} returned null LiveStreamId", provider.GetType().Name)); + } + SetKeyProperties(provider, mediaSource); var info = new LiveStreamInfo @@ -368,6 +373,13 @@ namespace MediaBrowser.Server.Implementations.Library public async Task<MediaSourceInfo> GetLiveStream(string id, CancellationToken cancellationToken) { + if (string.IsNullOrWhiteSpace(id)) + { + throw new ArgumentNullException("id"); + } + + _logger.Debug("Getting live stream {0}", id); + await _liveStreamSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); try |
