From 51e20a14c29b67bf9e8c0bbf9e92f1fe406062c3 Mon Sep 17 00:00:00 2001 From: karm235 Date: Tue, 7 Oct 2025 12:11:02 -0500 Subject: Fix LUFS detection deadlock on albums with verbose output --- .../ScheduledTasks/Tasks/AudioNormalizationTask.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs') diff --git a/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs b/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs index a28f280af..78b8759c5 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs @@ -261,14 +261,23 @@ public partial class AudioNormalizationTask : IScheduledTask using var reader = process.StandardError; float? lufs = null; + var foundLufs = false; await foreach (var line in reader.ReadAllLinesAsync(cancellationToken).ConfigureAwait(false)) { + if (foundLufs) + { + continue; + } + Match match = LUFSRegex().Match(line); - if (match.Success) + if (!match.Success) { - lufs = float.Parse(match.Groups[1].ValueSpan, CultureInfo.InvariantCulture.NumberFormat); - break; + continue; } + + lufs = float.Parse(match.Groups[1].ValueSpan, CultureInfo.InvariantCulture.NumberFormat); + foundLufs = true; + // Don't break - keep draining stderr to prevent buffer deadlock } if (lufs is null) -- cgit v1.2.3 From 6097045d71b4518cc118a98917125927c676e128 Mon Sep 17 00:00:00 2001 From: karm235 Date: Tue, 7 Oct 2025 12:20:08 -0500 Subject: cleanup --- .../ScheduledTasks/Tasks/AudioNormalizationTask.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs') diff --git a/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs b/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs index 78b8759c5..36708e258 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Tasks/AudioNormalizationTask.cs @@ -277,7 +277,6 @@ public partial class AudioNormalizationTask : IScheduledTask lufs = float.Parse(match.Groups[1].ValueSpan, CultureInfo.InvariantCulture.NumberFormat); foundLufs = true; - // Don't break - keep draining stderr to prevent buffer deadlock } if (lufs is null) -- cgit v1.2.3