From 6e2c19d35434ee857fb14aef565ef51bde3127ac Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Fri, 27 Jun 2025 09:45:30 -0500 Subject: [PATCH] process missing language as und (#2081) --- .../FFmpeg/CustomStreamSelectorTests.cs | 33 ++++++++++++++++++- ErsatzTV.Core/FFmpeg/CustomStreamSelector.cs | 18 +++++----- 2 files changed, 42 insertions(+), 9 deletions(-) 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