ffmpeg | branch: master | Paul B Mahol <[email protected]> | Wed Oct 16 18:24:31 
2019 +0200| [98ae6b0a4d6d6909277b664937721e135c0a70ff] | committer: Paul B Mahol

vafilter/af_replaygain: fix undefined behaviour

Fixes #8291

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=98ae6b0a4d6d6909277b664937721e135c0a70ff
---

 libavfilter/af_replaygain.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavfilter/af_replaygain.c b/libavfilter/af_replaygain.c
index 97617346ed..53fe49d769 100644
--- a/libavfilter/af_replaygain.c
+++ b/libavfilter/af_replaygain.c
@@ -551,7 +551,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
     AVFilterContext *ctx = inlink->dst;
     AVFilterLink *outlink = ctx->outputs[0];
     ReplayGainContext *s = ctx->priv;
-    uint32_t level;
+    int64_t level;
     AVFrame *out;
 
     out = ff_get_audio_buffer(outlink, in->nb_samples);
@@ -567,9 +567,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
                                                  out->nb_samples);
     butter_filter_stereo_samples(s, (float *)out->data[0],
                                              out->nb_samples);
-    level = (uint32_t)floor(100 * calc_stereo_rms((float *)out->data[0],
-                                                           out->nb_samples));
-    level = av_clip(level, 0, HISTOGRAM_SLOTS - 1);
+    level = lrint(floor(100 * calc_stereo_rms((float *)out->data[0],
+                                                           out->nb_samples)));
+    level = av_clip64(level, 0, HISTOGRAM_SLOTS - 1);
 
     s->histogram[level]++;
 

_______________________________________________
ffmpeg-cvslog mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to