Просмотр исходного кода

Merge pull request #7802 from jellyfin/external

(cherry picked from commit 9954cbd550cc0b85ae6579e2504372f74316e7b8)
Signed-off-by: crobibero <cody@robibe.ro>
Cody Robibero 3 лет назад
Родитель
Сommit
3a95d4b04e

+ 15 - 13
MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs

@@ -106,19 +106,28 @@ namespace MediaBrowser.Providers.MediaInfo
                     if (mediaInfo.MediaStreams.Count == 1)
                     {
                         MediaStream mediaStream = mediaInfo.MediaStreams[0];
-                        mediaStream.Index = startIndex++;
-                        mediaStream.IsDefault = pathInfo.IsDefault || mediaStream.IsDefault;
-                        mediaStream.IsForced = pathInfo.IsForced || mediaStream.IsForced;
 
-                        mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+                        if ((mediaStream.Type == MediaStreamType.Audio && _type == DlnaProfileType.Audio)
+                            || (mediaStream.Type == MediaStreamType.Subtitle && _type == DlnaProfileType.Subtitle))
+                        {
+                            mediaStream.Index = startIndex++;
+                            mediaStream.IsDefault = pathInfo.IsDefault || mediaStream.IsDefault;
+                            mediaStream.IsForced = pathInfo.IsForced || mediaStream.IsForced;
+
+                            mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+                        }
                     }
                     else
                     {
                         foreach (MediaStream mediaStream in mediaInfo.MediaStreams)
                         {
-                            mediaStream.Index = startIndex++;
+                            if ((mediaStream.Type == MediaStreamType.Audio && _type == DlnaProfileType.Audio)
+                                || (mediaStream.Type == MediaStreamType.Subtitle && _type == DlnaProfileType.Subtitle))
+                            {
+                                mediaStream.Index = startIndex++;
 
-                            mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+                                mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+                            }
                         }
                     }
                 }
@@ -222,13 +231,6 @@ namespace MediaBrowser.Providers.MediaInfo
             mediaStream.Title = string.IsNullOrEmpty(mediaStream.Title) ? (string.IsNullOrEmpty(pathInfo.Title) ? null : pathInfo.Title) : mediaStream.Title;
             mediaStream.Language = string.IsNullOrEmpty(mediaStream.Language) ? (string.IsNullOrEmpty(pathInfo.Language) ? null : pathInfo.Language) : mediaStream.Language;
 
-            mediaStream.Type = _type switch
-            {
-                DlnaProfileType.Audio => MediaStreamType.Audio,
-                DlnaProfileType.Subtitle => MediaStreamType.Subtitle,
-                _ => mediaStream.Type
-            };
-
             return mediaStream;
         }
     }

+ 3 - 0
tests/Jellyfin.Providers.Tests/MediaInfo/AudioResolverTests.cs

@@ -43,6 +43,9 @@ public class AudioResolverTests
                 MediaStreams = new List<MediaStream>
                 {
                     new()
+                    {
+                        Type = MediaStreamType.Audio
+                    }
                 }
             }));
 

+ 4 - 1
tests/Jellyfin.Providers.Tests/MediaInfo/MediaInfoResolverTests.cs

@@ -359,7 +359,10 @@ public class MediaInfoResolverTests
             var mediaStreams = new List<MediaStream>();
             for (int i = 0; i < streamCount; i++)
             {
-                mediaStreams.Add(new());
+                mediaStreams.Add(new()
+                {
+                    Type = MediaStreamType.Subtitle
+                });
             }
 
             return mediaStreams;

+ 3 - 0
tests/Jellyfin.Providers.Tests/MediaInfo/SubtitleResolverTests.cs

@@ -43,6 +43,9 @@ public class SubtitleResolverTests
                 MediaStreams = new List<MediaStream>
                 {
                     new()
+                    {
+                        Type = MediaStreamType.Subtitle
+                    }
                 }
             }));