From 9178f694ea532b624b45c7e713f327b0d53053c2 Mon Sep 17 00:00:00 2001 From: Ellen Poe Date: Thu, 18 Feb 2021 16:53:26 -0800 Subject: [PATCH] Prevent distortion filter from introducing NaNs in the audio buffer. (cherry picked from commit b6b97b86ab7f29bd9e5f81c6c76819fd6b4dbf10) --- servers/audio/effects/audio_effect_distortion.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/servers/audio/effects/audio_effect_distortion.cpp b/servers/audio/effects/audio_effect_distortion.cpp index bbc372b7772..8bb108f5017 100644 --- a/servers/audio/effects/audio_effect_distortion.cpp +++ b/servers/audio/effects/audio_effect_distortion.cpp @@ -61,8 +61,8 @@ void AudioEffectDistortionInstance::process(const AudioFrame *p_src_frames, Audi switch (base->mode) { case AudioEffectDistortion::MODE_CLIP: { - - a = powf(a, 1.0001 - drive_f); + float a_sign = a < 0 ? -1.0f : 1.0f; + a = powf(abs(a), 1.0001 - drive_f) * a_sign; if (a > 1.0) a = 1.0; else if (a < (-1.0))