Found-by: Andreas Signed-off-by: Michael Niedermayer <mich...@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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel