소스 검색

Replace GetDirectStreamProviderByUniqueId with GetLiveStreamInfoByUniqueId

cvium 3 년 전
부모
커밋
ff328fefc5

+ 6 - 7
Emby.Server.Implementations/Library/MediaSourceManager.cs

@@ -587,13 +587,6 @@ namespace Emby.Server.Implementations.Library
             mediaSource.InferTotalBitrate();
         }
 
-        public Task<IDirectStreamProvider> GetDirectStreamProviderByUniqueId(string uniqueId, CancellationToken cancellationToken)
-        {
-            var info = _openStreams.FirstOrDefault(i => i.Value != null && string.Equals(i.Value.UniqueId, uniqueId, StringComparison.OrdinalIgnoreCase));
-
-            return Task.FromResult(info.Value as IDirectStreamProvider);
-        }
-
         public async Task<LiveStreamResponse> OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken)
         {
             var result = await OpenLiveStreamInternal(request, cancellationToken).ConfigureAwait(false);
@@ -799,6 +792,12 @@ namespace Emby.Server.Implementations.Library
             return null;
         }
 
+        /// <inheritdoc />
+        public ILiveStream GetLiveStreamInfoByUniqueId(string uniqueId)
+        {
+            return _openStreams.Values.FirstOrDefault(stream => string.Equals(uniqueId, stream?.UniqueId, StringComparison.OrdinalIgnoreCase));
+        }
+
         public async Task<MediaSourceInfo> GetLiveStream(string id, CancellationToken cancellationToken)
         {
             var result = await GetLiveStreamWithDirectStreamProvider(id, cancellationToken).ConfigureAwait(false);

+ 1 - 1
Jellyfin.Api/Controllers/LiveTvController.cs

@@ -1201,7 +1201,7 @@ namespace Jellyfin.Api.Controllers
         [ProducesVideoFile]
         public ActionResult GetLiveStreamFile([FromRoute, Required] string streamId, [FromRoute, Required] string container)
         {
-            var liveStreamInfo = _mediaSourceManager.GetLiveStreamInfo(streamId);
+            var liveStreamInfo = _mediaSourceManager.GetLiveStreamInfoByUniqueId(streamId);
             if (liveStreamInfo == null)
             {
                 return NotFound();

+ 7 - 2
MediaBrowser.Controller/Library/IMediaSourceManager.cs

@@ -116,6 +116,13 @@ namespace MediaBrowser.Controller.Library
         /// <returns>An instance of <see cref="ILiveStream"/>.</returns>
         public ILiveStream GetLiveStreamInfo(string id);
 
+        /// <summary>
+        /// Gets the live stream info using the stream's unique id.
+        /// </summary>
+        /// <param name="uniqueId">The unique identifier.</param>
+        /// <returns>An instance of <see cref="ILiveStream"/>.</returns>
+        public ILiveStream GetLiveStreamInfoByUniqueId(string uniqueId);
+
         /// <summary>
         /// Closes the media source.
         /// </summary>
@@ -132,7 +139,5 @@ namespace MediaBrowser.Controller.Library
         void SetDefaultAudioAndSubtitleStreamIndexes(BaseItem item, MediaSourceInfo source, User user);
 
         Task AddMediaInfoWithProbe(MediaSourceInfo mediaSource, bool isAudio, string cacheKey, bool addProbeDelay, bool isLiveStream, CancellationToken cancellationToken);
-
-        Task<IDirectStreamProvider> GetDirectStreamProviderByUniqueId(string uniqueId, CancellationToken cancellationToken);
     }
 }