2
0
Эх сурвалжийг харах

Query media streams by type instead of filtering

Joe Rogers 3 жил өмнө
parent
commit
7cf5767949

+ 0 - 9
MediaBrowser.Controller/Entities/Audio/Audio.cs

@@ -126,15 +126,6 @@ namespace MediaBrowser.Controller.Entities.Audio
             return base.GetBlockUnratedType();
         }
 
-        public List<MediaStream> GetMediaStreams(MediaStreamType type)
-        {
-            return MediaSourceManager.GetMediaStreams(new MediaStreamQuery
-            {
-                ItemId = Id,
-                Type = type
-            });
-        }
-
         public SongInfo GetLookupInfo()
         {
             var info = GetItemLookupInfo<SongInfo>();

+ 7 - 1
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -1107,10 +1107,16 @@ namespace MediaBrowser.Controller.Entities
         }
 
         public virtual List<MediaStream> GetMediaStreams()
+        {
+            return GetMediaStreams(null);
+        }
+
+        public virtual List<MediaStream> GetMediaStreams(MediaStreamType? type)
         {
             return MediaSourceManager.GetMediaStreams(new MediaStreamQuery
             {
-                ItemId = Id
+                ItemId = Id,
+                Type = type
             });
         }
 

+ 1 - 4
MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs

@@ -49,10 +49,7 @@ namespace MediaBrowser.Providers.MediaInfo
         {
             var audio = (Audio)item;
 
-            var imageStreams =
-                audio.GetMediaStreams(MediaStreamType.EmbeddedImage)
-                    .Where(i => i.Type == MediaStreamType.EmbeddedImage)
-                    .ToList();
+            var imageStreams = audio.GetMediaStreams(MediaStreamType.EmbeddedImage);
 
             // Can't extract if we didn't find a video stream in the file
             if (imageStreams.Count == 0)

+ 1 - 1
MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs

@@ -139,7 +139,7 @@ namespace MediaBrowser.Providers.MediaInfo
             }
 
             // Fall back to EmbeddedImage streams
-            var imageStreams = item.GetMediaStreams().FindAll(i => i.Type == MediaStreamType.EmbeddedImage);
+            var imageStreams = item.GetMediaStreams(MediaStreamType.EmbeddedImage);
 
             if (imageStreams.Count == 0)
             {

+ 1 - 1
MediaBrowser.Providers/MediaInfo/VideoImageProvider.cs

@@ -83,7 +83,7 @@ namespace MediaBrowser.Providers.MediaInfo
                                   ? TimeSpan.FromTicks(item.RunTimeTicks.Value / 10)
                                   : TimeSpan.FromSeconds(10);
 
-            var videoStream = item.GetDefaultVideoStream() ?? item.GetMediaStreams().FirstOrDefault(i => i.Type == MediaStreamType.Video);
+            var videoStream = item.GetDefaultVideoStream() ?? item.GetMediaStreams(MediaStreamType.Video).FirstOrDefault();
 
             if (videoStream == null)
             {

+ 1 - 1
tests/Jellyfin.Providers.Tests/MediaInfo/EmbeddedImageProviderTests.cs

@@ -147,7 +147,7 @@ namespace Jellyfin.Providers.Tests.MediaInfo
 
             movie.Setup(item => item.GetMediaSources(It.IsAny<bool>()))
                 .Returns(new List<MediaSourceInfo> { new () { MediaAttachments = mediaAttachments } } );
-            movie.Setup(item => item.GetMediaStreams())
+            movie.Setup(item => item.GetMediaStreams(MediaStreamType.EmbeddedImage))
                 .Returns(mediaStreams);
 
             return movie.Object;

+ 1 - 1
tests/Jellyfin.Providers.Tests/MediaInfo/VideoImageProviderTests.cs

@@ -167,7 +167,7 @@ namespace Jellyfin.Providers.Tests.MediaInfo
 
             movie.Setup(item => item.GetDefaultVideoStream())
                 .Returns(defaultStream!);
-            movie.Setup(item => item.GetMediaStreams())
+            movie.Setup(item => item.GetMediaStreams(MediaStreamType.Video))
                 .Returns(mediaStreams);
 
             return movie.Object;