aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2022-02-14 15:03:08 +0100
committerBond_009 <bond.009@outlook.com>2022-02-14 15:03:08 +0100
commitdbd7be091d802a788e520809fe55c9063a9cdaf4 (patch)
tree4f3857cc134ea13db71e811948402233b377e0ff
parent8b2556adbafa581788433259d0db9c3ca75924c4 (diff)
Fix MediaStreamSelector
-rw-r--r--Emby.Server.Implementations/Library/MediaStreamSelector.cs7
-rw-r--r--tests/Jellyfin.Server.Implementations.Tests/Library/MediaStreamSelectorTests.cs30
2 files changed, 36 insertions, 1 deletions
diff --git a/Emby.Server.Implementations/Library/MediaStreamSelector.cs b/Emby.Server.Implementations/Library/MediaStreamSelector.cs
index 13f0999b3..6ba9b29fa 100644
--- a/Emby.Server.Implementations/Library/MediaStreamSelector.cs
+++ b/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;
diff --git a/tests/Jellyfin.Server.Implementations.Tests/Library/MediaStreamSelectorTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Library/MediaStreamSelectorTests.cs
new file mode 100644
index 000000000..d59f2f4e5
--- /dev/null
+++ b/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));
+ }
+}