Kaynağa Gözat

Fix default audio selection ignoring type

Joe Rogers 3 yıl önce
ebeveyn
işleme
644e774040

+ 2 - 2
Emby.Server.Implementations/Library/MediaStreamSelector.cs

@@ -13,11 +13,11 @@ namespace Emby.Server.Implementations.Library
     {
     {
         public static int? GetDefaultAudioStreamIndex(IReadOnlyList<MediaStream> streams, IReadOnlyList<string> preferredLanguages, bool preferDefaultTrack)
         public static int? GetDefaultAudioStreamIndex(IReadOnlyList<MediaStream> streams, IReadOnlyList<string> preferredLanguages, bool preferDefaultTrack)
         {
         {
-            var sortedStreams = GetSortedStreams(streams, MediaStreamType.Audio, preferredLanguages);
+            var sortedStreams = GetSortedStreams(streams, MediaStreamType.Audio, preferredLanguages).ToList();
 
 
             if (preferDefaultTrack)
             if (preferDefaultTrack)
             {
             {
-                var defaultStream = streams.FirstOrDefault(i => i.IsDefault);
+                var defaultStream = sortedStreams.FirstOrDefault(i => i.IsDefault);
 
 
                 if (defaultStream != null)
                 if (defaultStream != null)
                 {
                 {

+ 8 - 0
tests/Jellyfin.Server.Implementations.Tests/Library/MediaStreamSelectorTests.cs

@@ -27,15 +27,23 @@ public class MediaStreamSelectorTests
     {
     {
         var streams = new MediaStream[]
         var streams = new MediaStream[]
         {
         {
+            new()
+            {
+                Index = 0,
+                Type = MediaStreamType.Video,
+                IsDefault = true
+            },
             new()
             new()
             {
             {
                 Index = 1,
                 Index = 1,
+                Type = MediaStreamType.Audio,
                 Language = "fre",
                 Language = "fre",
                 IsDefault = true
                 IsDefault = true
             },
             },
             new()
             new()
             {
             {
                 Index = 2,
                 Index = 2,
+                Type = MediaStreamType.Audio,
                 Language = "eng",
                 Language = "eng",
                 IsDefault = false
                 IsDefault = false
             }
             }