From 7088aae2e9204cdbe0cfe4a59d4d418fad6a10bb Mon Sep 17 00:00:00 2001 From: Christopher Snowhill Date: Fri, 14 Feb 2025 18:46:47 -0800 Subject: [PATCH] Bug Fix: Downmixer converter should update now The Downmixer wasn't updating its output format correctly, so it was prone to outputting the wrong format for a while, which could confuse the output device and produce garbage output. Signed-off-by: Christopher Snowhill --- Audio/Chain/DSP/DSPDownmixNode.m | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Audio/Chain/DSP/DSPDownmixNode.m b/Audio/Chain/DSP/DSPDownmixNode.m index eccae3838..ad4db569f 100644 --- a/Audio/Chain/DSP/DSPDownmixNode.m +++ b/Audio/Chain/DSP/DSPDownmixNode.m @@ -81,6 +81,16 @@ } - (void)setOutputFormat:(AudioStreamBasicDescription)format withChannelConfig:(uint32_t)config { + if(memcmp(&outputFormat, &format, sizeof(outputFormat)) != 0 || + outputChannelConfig != config) { + paused = YES; + while(processEntered) { + usleep(500); + } + [super resetBuffer]; + [self fullShutdown]; + paused = NO; + } outputFormat = format; outputChannelConfig = config; formatSet = YES;