diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c index db91d28b36..365453d60d 100644 --- a/libavfilter/af_dynaudnorm.c +++ b/libavfilter/af_dynaudnorm.c @@ -521,10 +521,11 @@ static void update_gain_history(DynamicAudioNormalizerContext *s, int channel, } while (cqueue_size(s->gain_history_minimum[channel]) >= s->filter_size) { - double smoothed; + double smoothed, limit; smoothed = gaussian_filter(s, s->gain_history_minimum[channel], s->threshold_history[channel]); - smoothed = FFMIN(smoothed, cqueue_peek(s->gain_history_minimum[channel], s->filter_size / 2)); + limit = cqueue_peek(s->gain_history_original[channel], 0); + smoothed = FFMIN(smoothed, limit); cqueue_enqueue(s->gain_history_smoothed[channel], smoothed);