[FFmpeg-devel] [PATCH 1/3] avutil/opt: Fix setting int64 to its maximum

Michael Niedermayer michael at niedermayer.cc
Sun Nov 20 22:50:46 EET 2016


On Sun, Nov 20, 2016 at 08:53:19PM +0100, Andreas Cadhalpun wrote:
> On 20.11.2016 12:57, Michael Niedermayer wrote:
> > 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;
> > 
> 
> LGTM. Thanks for finding a better fix for the problem!

applied

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No snowflake in an avalanche ever feels responsible. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20161120/c2cd76ec/attachment.sig>


More information about the ffmpeg-devel mailing list