diff options
author | Paul B Mahol <onemda@gmail.com> | 2020-01-04 10:27:46 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2020-01-04 10:27:46 +0100 |
commit | 6a1305e8b7d191e6b8647f89a22efbad7e81cc05 (patch) | |
tree | 8a69e7dab6fb14faa41519aeca5b0842de497807 | |
parent | 3c8da7b9826d03e370cab550a403ed0e14da24ef (diff) | |
download | ffmpeg-6a1305e8b7d191e6b8647f89a22efbad7e81cc05.tar.gz |
avfilter/af_dynaudnorm: do not clip audio
Clipping can happen when smoothed gain is higher than maximum
allowed gain factor for current frame and peak value option is
set to enough low value.
-rw-r--r-- | libavfilter/af_dynaudnorm.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c index 4b9153e418..09d2aeb816 100644 --- a/libavfilter/af_dynaudnorm.c +++ b/libavfilter/af_dynaudnorm.c @@ -490,6 +490,7 @@ static void update_gain_history(DynamicAudioNormalizerContext *s, int channel, double smoothed; av_assert0(cqueue_size(s->gain_history_minimum[channel]) == s->filter_size); smoothed = gaussian_filter(s, s->gain_history_minimum[channel]); + smoothed = FFMIN(smoothed, cqueue_peek(s->gain_history_minimum[channel], s->filter_size / 2)); cqueue_enqueue(s->gain_history_smoothed[channel], smoothed); |