From 10d7c14444e581f2762d37f0ac53fa4850353e19 Mon Sep 17 00:00:00 2001 From: l4kr Date: Wed, 8 Jul 2026 10:53:48 +0200 Subject: [PATCH] Fall back to first audio track when none preferred Auto-selection still prefers Japanese/Chinese/undefined audio, but if a file has none of those (e.g. only English), the first audio track is pre-checked instead of leaving no audio track selected. --- Futonizer.csproj | 4 ++-- Services/MkvService.cs | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Futonizer.csproj b/Futonizer.csproj index 6e13baa..76c76ed 100644 --- a/Futonizer.csproj +++ b/Futonizer.csproj @@ -9,8 +9,8 @@ enable Futonizer Futonizer - 1.0.6 - 1.0.6.0 + 1.0.7 + 1.0.7.0 Assets\app.ico diff --git a/Services/MkvService.cs b/Services/MkvService.cs index ee070ba..e8d93ce 100644 --- a/Services/MkvService.cs +++ b/Services/MkvService.cs @@ -93,9 +93,12 @@ public class MkvService /// /// Builds the list of objects for a file. Video - /// tracks are always pre-checked. Exactly one audio track is pre-checked: - /// among Japanese/Chinese/undefined-language tracks, a stereo (2-channel) - /// track is preferred, otherwise the first matching track in file order. + /// tracks are always pre-checked. Exactly one audio track is always + /// pre-checked: among Japanese/Chinese/undefined-language tracks, a + /// stereo (2-channel) track is preferred, otherwise the first matching + /// track in file order. If no such track exists (e.g. only English + /// audio), the very first audio track in the file is pre-checked instead, + /// so a file is never left with no audio track selected. /// Subtitle tracks are never pre-checked — the user picks one via the /// track table, and the choice propagates to other queued files. /// @@ -108,7 +111,8 @@ public class MkvService .ToList(); MkvTrack? preferredAudio = eligibleAudio.FirstOrDefault(t => t.Properties?.AudioChannels == 2) - ?? eligibleAudio.FirstOrDefault(); + ?? eligibleAudio.FirstOrDefault() + ?? audioTracks.FirstOrDefault(); var items = info.Tracks.Select(t => {