浏览代码

Fix MediaStreamSelector

Bond_009 3 年之前
父节点
当前提交
dbd7be091d

+ 6 - 1
Emby.Server.Implementations/Library/MediaStreamSelector.cs

@@ -17,7 +17,12 @@ namespace Emby.Server.Implementations.Library
 
             if (preferDefaultTrack)
             {
-                return sortedStreams.FirstOrDefault(i => i.IsDefault)?.Index;
+                var defaultStream = streams.FirstOrDefault(i => i.IsDefault);
+
+                if (defaultStream != null)
+                {
+                    return defaultStream.Index;
+                }
             }
 
             return sortedStreams.FirstOrDefault()?.Index;

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

@@ -0,0 +1,30 @@
+using System;
+using Emby.Server.Implementations.Library;
+using MediaBrowser.Model.Entities;
+using Xunit;
+
+namespace Jellyfin.Server.Implementations.Tests.Library;
+
+public class MediaStreamSelectorTests
+{
+    [Theory]
+    [InlineData(true)]
+    [InlineData(false)]
+    public void GetDefaultAudioStreamIndex_EmptyStreams_Null(bool preferDefaultTrack)
+    {
+        Assert.Null(MediaStreamSelector.GetDefaultAudioStreamIndex(Array.Empty<MediaStream>(), Array.Empty<string>(), preferDefaultTrack));
+    }
+
+    [Theory]
+    [InlineData(true)]
+    [InlineData(false)]
+    public void GetDefaultAudioStreamIndex_WithoutDefault_NotNull(bool preferDefaultTrack)
+    {
+        var streams = new[]
+        {
+            new MediaStream()
+        };
+
+        Assert.NotNull(MediaStreamSelector.GetDefaultAudioStreamIndex(streams, Array.Empty<string>(), preferDefaultTrack));
+    }
+}