On 20.11.2016 12:57, Michael Niedermayer wrote: > 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; >
LGTM. Thanks for finding a better fix for the problem! Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel