[FFmpeg-devel] [PATCH 1/3] avutil/opt: Fix setting int64 to its maximum
Michael Niedermayer
michael at niedermayer.cc
Sun Nov 20 13:57:42 EET 2016
Found-by: Andreas
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavutil/opt.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/libavutil/opt.c b/libavutil/opt.c
index cd16bd1..6669356 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -126,9 +126,11 @@ static int write_number(void *obj, const AVOption *o, void *dst, double num, int
break;
case AV_OPT_TYPE_DURATION:
case AV_OPT_TYPE_CHANNEL_LAYOUT:
- case AV_OPT_TYPE_INT64:
- *(int64_t *)dst = llrint(num / den) * intnum;
- break;
+ case AV_OPT_TYPE_INT64:{
+ double d = num / den;
+ if (intnum == 1 && d == (double)INT64_MAX) *(int64_t *)dst = INT64_MAX;
+ else *(int64_t *)dst = llrint(d) * intnum;
+ break;}
case AV_OPT_TYPE_FLOAT:
*(float *)dst = num * intnum / den;
break;
--
2.10.2
More information about the ffmpeg-devel
mailing list