diff --git a/ErsatzTV.Core.Tests/FFmpeg/CustomStreamSelectorTests.cs b/ErsatzTV.Core.Tests/FFmpeg/CustomStreamSelectorTests.cs index d9a34cbf1..5f1f0009e 100644 --- a/ErsatzTV.Core.Tests/FFmpeg/CustomStreamSelectorTests.cs +++ b/ErsatzTV.Core.Tests/FFmpeg/CustomStreamSelectorTests.cs @@ -67,6 +67,31 @@ items: } } + [Test] + public async Task Should_Select_und_Audio_Missing_Language() + { + const string YAML = +""" +--- +items: + - audio_language: ["und"] +"""; + + var streamSelector = new CustomStreamSelector( + new FakeLocalFileSystem([new FakeFileEntry(TestFileName) { Contents = YAML }]), + new NullLogger()); + + StreamSelectorResult result = await streamSelector.SelectStreams(_channel, _audioVersion, _subtitles); + + result.AudioStream.IsSome.ShouldBeTrue(); + + foreach (MediaStream audioStream in result.AudioStream) + { + audioStream.Index.ShouldBe(3); + audioStream.Language.ShouldBeNullOrWhiteSpace(); + } + } + [Test] public async Task Should_Select_eng_Audio_Exact_Match_Multiple_Audio_Languages() { @@ -690,7 +715,13 @@ items: Channels = 6, Language = englishLanguage, Title = "Movie Title", - Default = true + }, + new MediaStream + { + Index = 3, + MediaStreamKind = MediaStreamKind.Audio, + Channels = 2, + Title = "Who Knows", } ] }; diff --git a/ErsatzTV.Core/FFmpeg/CustomStreamSelector.cs b/ErsatzTV.Core/FFmpeg/CustomStreamSelector.cs index 597fd2dda..13609f90f 100644 --- a/ErsatzTV.Core/FFmpeg/CustomStreamSelector.cs +++ b/ErsatzTV.Core/FFmpeg/CustomStreamSelector.cs @@ -43,7 +43,8 @@ public class CustomStreamSelector(ILocalFileSystem localFileSystem, ILogger 0) { @@ -60,7 +61,7 @@ public class CustomStreamSelector(ILocalFileSystem localFileSystem, ILogger 0) { @@ -147,7 +149,7 @@ public class CustomStreamSelector(ILocalFileSystem localFileSystem, ILogger