summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-01-04 10:27:46 +0100
committerPaul B Mahol <onemda@gmail.com>2020-01-04 10:27:46 +0100
commit6a1305e8b7d191e6b8647f89a22efbad7e81cc05 (patch)
tree8a69e7dab6fb14faa41519aeca5b0842de497807
parent3c8da7b9826d03e370cab550a403ed0e14da24ef (diff)
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.c1
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);