aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowghost <Ghost_of_Stone@web.de>2024-09-17 23:34:12 +0200
committerShadowghost <Ghost_of_Stone@web.de>2024-09-17 23:34:12 +0200
commit5a5da33f44b933215c95947c479ded1cdbadbcd9 (patch)
tree5e95194c6ccb689f9fbaf44922675cc93dab6ece
parent2351eeba561905bafae48a948f3126797c284766 (diff)
Apply review suggestions
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs7
-rw-r--r--MediaBrowser.Model/Extensions/ContainerHelper.cs4
-rw-r--r--tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs29
3 files changed, 34 insertions, 6 deletions
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 6fc7f796d..bf122dcc7 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -407,10 +407,9 @@ namespace MediaBrowser.Model.Dlna
continue;
}
- var formatStr = format.ToString();
- if (directPlayProfile.SupportsContainer(formatStr))
+ if (directPlayProfile.SupportsContainer(format))
{
- return formatStr;
+ return format;
}
}
}
@@ -1317,6 +1316,7 @@ namespace MediaBrowser.Model.Dlna
}
var containerSupported = false;
+ TranscodeReason[] rankings = [TranscodeReason.VideoCodecNotSupported, VideoCodecReasons, TranscodeReason.AudioCodecNotSupported, AudioCodecReasons, ContainerReasons];
// Check DirectPlay profiles to see if it can be direct played
var analyzedProfiles = profile.DirectPlayProfiles
@@ -1382,7 +1382,6 @@ namespace MediaBrowser.Model.Dlna
playMethod = PlayMethod.DirectStream;
}
- TranscodeReason[] rankings = [TranscodeReason.VideoCodecNotSupported, VideoCodecReasons, TranscodeReason.AudioCodecNotSupported, AudioCodecReasons, ContainerReasons];
var ranked = GetRank(ref failureReasons, rankings);
return (Result: (Profile: directPlayProfile, PlayMethod: playMethod, AudioStreamIndex: selectedAudioStream?.Index, TranscodeReason: failureReasons), Order: order, Rank: ranked);
diff --git a/MediaBrowser.Model/Extensions/ContainerHelper.cs b/MediaBrowser.Model/Extensions/ContainerHelper.cs
index 4b75657ff..c86328ba6 100644
--- a/MediaBrowser.Model/Extensions/ContainerHelper.cs
+++ b/MediaBrowser.Model/Extensions/ContainerHelper.cs
@@ -91,7 +91,7 @@ public static class ContainerHelper
{
foreach (var profile in allProfileContainers)
{
- if (container.Equals(profile, StringComparison.OrdinalIgnoreCase))
+ if (!profile.IsEmpty && container.Equals(profile, StringComparison.OrdinalIgnoreCase))
{
return !isNegativeList;
}
@@ -118,7 +118,7 @@ public static class ContainerHelper
return true;
}
- var allInputContainers = inputContainer.Split(',');
+ var allInputContainers = Split(inputContainer);
foreach (var container in allInputContainers)
{
foreach (var profile in profileContainers)
diff --git a/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs b/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs
index 68f8d94c7..1ad4bed56 100644
--- a/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs
+++ b/tests/Jellyfin.Model.Tests/Dlna/ContainerHelperTests.cs
@@ -40,6 +40,11 @@ public class ContainerHelperTests
public void ContainsContainer_NotInList_ReturnsFalse(string container, string? extension)
{
Assert.False(ContainerHelper.ContainsContainer(container, extension));
+
+ if (extension is not null)
+ {
+ Assert.False(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
+ }
}
[Theory]
@@ -51,4 +56,28 @@ public class ContainerHelperTests
{
Assert.True(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
}
+
+ [Theory]
+ [InlineData(new string[] { "mp3", "mpeg" }, false, "mpeg")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, false, "avi")]
+ [InlineData(new string[] { "mp3", "", "avi" }, false, "mp3")]
+ [InlineData(new string[] { "mp3", "mpeg" }, true, "avi")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, true, "mkv")]
+ [InlineData(new string[] { "mp3", "", "avi" }, true, "")]
+ public void ContainsContainer_ThreeArgs_InList_ReturnsTrue(string[] containers, bool isNegativeList, string inputContainer)
+ {
+ Assert.True(ContainerHelper.ContainsContainer(containers, isNegativeList, inputContainer));
+ }
+
+ [Theory]
+ [InlineData(new string[] { "mp3", "mpeg" }, false, "avi")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, false, "mkv")]
+ [InlineData(new string[] { "mp3", "", "avi" }, false, "")]
+ [InlineData(new string[] { "mp3", "mpeg" }, true, "mpeg")]
+ [InlineData(new string[] { "mp3", "mpeg", "avi" }, true, "mp3")]
+ [InlineData(new string[] { "mp3", "", "avi" }, true, "avi")]
+ public void ContainsContainer_ThreeArgs_InList_ReturnsFalse(string[] containers, bool isNegativeList, string inputContainer)
+ {
+ Assert.False(ContainerHelper.ContainsContainer(containers, isNegativeList, inputContainer));
+ }
}