[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