[FFmpeg-devel] [PATCH 1/2] avutil/opt: Alpha workaround

Michael Niedermayer michael at niedermayer.cc
Mon May 30 22:09:10 EEST 2022


alpha-linux-gnu-gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010 with qemu-alpha version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.39)
trigger a FPE on the DBL_MAX * 90000 operation

Iam not 100% sure why, but if i mess with mfp-trap-mode the compiler produces internal compiler errors
This issue seems not to affect the fate box with an older compiler

Ive also tried the gcc 6, gcc 7, gcc 8 packages with no luck

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavutil/opt.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index 8ffb10449b..78968cd894 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -101,8 +101,9 @@ FF_ENABLE_DEPRECATION_WARNINGS
 
 static int write_number(void *obj, const AVOption *o, void *dst, double num, int den, int64_t intnum)
 {
+    int maxcheck = o->max == DBL_MAX ? o->max < num * intnum / den : (o->max * den < num * intnum);
     if (o->type != AV_OPT_TYPE_FLAGS &&
-        (!den || o->max * den < num * intnum || o->min * den > num * intnum)) {
+        (!den || maxcheck || o->min * den > num * intnum)) {
         num = den ? num * intnum / den : (num && intnum ? INFINITY : NAN);
         av_log(obj, AV_LOG_ERROR, "Value %f for parameter '%s' out of range [%g - %g]\n",
                num, o->name, o->min, o->max);
-- 
2.17.1



More information about the ffmpeg-devel mailing list