Apply review suggestions

This commit is contained in:
Shadowghost 2024-09-17 23:34:12 +02:00
parent 2351eeba56
commit 5a5da33f44
3 changed files with 34 additions and 6 deletions

View File

@ -407,10 +407,9 @@ namespace MediaBrowser.Model.Dlna
continue; continue;
} }
var formatStr = format.ToString(); if (directPlayProfile.SupportsContainer(format))
if (directPlayProfile.SupportsContainer(formatStr))
{ {
return formatStr; return format;
} }
} }
} }
@ -1317,6 +1316,7 @@ namespace MediaBrowser.Model.Dlna
} }
var containerSupported = false; var containerSupported = false;
TranscodeReason[] rankings = [TranscodeReason.VideoCodecNotSupported, VideoCodecReasons, TranscodeReason.AudioCodecNotSupported, AudioCodecReasons, ContainerReasons];
// Check DirectPlay profiles to see if it can be direct played // Check DirectPlay profiles to see if it can be direct played
var analyzedProfiles = profile.DirectPlayProfiles var analyzedProfiles = profile.DirectPlayProfiles
@ -1382,7 +1382,6 @@ namespace MediaBrowser.Model.Dlna
playMethod = PlayMethod.DirectStream; playMethod = PlayMethod.DirectStream;
} }
TranscodeReason[] rankings = [TranscodeReason.VideoCodecNotSupported, VideoCodecReasons, TranscodeReason.AudioCodecNotSupported, AudioCodecReasons, ContainerReasons];
var ranked = GetRank(ref failureReasons, rankings); var ranked = GetRank(ref failureReasons, rankings);
return (Result: (Profile: directPlayProfile, PlayMethod: playMethod, AudioStreamIndex: selectedAudioStream?.Index, TranscodeReason: failureReasons), Order: order, Rank: ranked); return (Result: (Profile: directPlayProfile, PlayMethod: playMethod, AudioStreamIndex: selectedAudioStream?.Index, TranscodeReason: failureReasons), Order: order, Rank: ranked);

View File

@ -91,7 +91,7 @@ public static class ContainerHelper
{ {
foreach (var profile in allProfileContainers) foreach (var profile in allProfileContainers)
{ {
if (container.Equals(profile, StringComparison.OrdinalIgnoreCase)) if (!profile.IsEmpty && container.Equals(profile, StringComparison.OrdinalIgnoreCase))
{ {
return !isNegativeList; return !isNegativeList;
} }
@ -118,7 +118,7 @@ public static class ContainerHelper
return true; return true;
} }
var allInputContainers = inputContainer.Split(','); var allInputContainers = Split(inputContainer);
foreach (var container in allInputContainers) foreach (var container in allInputContainers)
{ {
foreach (var profile in profileContainers) foreach (var profile in profileContainers)

View File

@ -40,6 +40,11 @@ public class ContainerHelperTests
public void ContainsContainer_NotInList_ReturnsFalse(string container, string? extension) public void ContainsContainer_NotInList_ReturnsFalse(string container, string? extension)
{ {
Assert.False(ContainerHelper.ContainsContainer(container, extension)); Assert.False(ContainerHelper.ContainsContainer(container, extension));
if (extension is not null)
{
Assert.False(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
}
} }
[Theory] [Theory]
@ -51,4 +56,28 @@ public class ContainerHelperTests
{ {
Assert.True(ContainerHelper.ContainsContainer(container, extension.AsSpan())); 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));
}
} }