Fix LUFS detection deadlock on albums with verbose output

This commit is contained in:
karm235 2025-10-07 12:11:02 -05:00
parent eb0d05cf1e
commit 51e20a14c2

View File

@ -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))
{
Match match = LUFSRegex().Match(line);
if (match.Success)
if (foundLufs)
{
lufs = float.Parse(match.Groups[1].ValueSpan, CultureInfo.InvariantCulture.NumberFormat);
break;
continue;
}
Match match = LUFSRegex().Match(line);
if (!match.Success)
{
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)