[FFmpeg-cvslog] avfilter/af_dynaudnorm: use better check for infinite loop

Paul B Mahol git at videolan.org
Mon Aug 8 00:56:14 EEST 2016


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Sun Aug  7 23:47:04 2016 +0200| [22d13e4290c8fdba57485e1b501f6a92283a10db] | committer: Paul B Mahol

avfilter/af_dynaudnorm: use better check for infinite loop

Apparently due to rounding this happens.

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

 libavfilter/af_dynaudnorm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c
index 6801209..91ec45a 100644
--- a/libavfilter/af_dynaudnorm.c
+++ b/libavfilter/af_dynaudnorm.c
@@ -519,7 +519,8 @@ static double setup_compress_thresh(double threshold)
         double step_size = 1.0;
 
         while (step_size > DBL_EPSILON) {
-            while ((current_threshold + step_size > current_threshold) &&
+            while ((llrint((current_threshold + step_size) * (UINT64_C(1) << 63)) >
+                    llrint(current_threshold * (UINT64_C(1) << 63))) &&
                    (bound(current_threshold + step_size, 1.0) <= threshold)) {
                 current_threshold += step_size;
             }



More information about the ffmpeg-cvslog mailing list