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 /libavfilter/af_dynaudnorm.c | |
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.
Diffstat (limited to 'libavfilter/af_dynaudnorm.c')
-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); |