# HG changeset patch # User michael # Date 1204689547 0 # Node ID 355b2eb9f5538730f474c60f6d669a948c5c54ab # Parent c32be43b52b2f39e14664b96130d21f5fc5e807c Fix handling flags with the MSB set. diff -r c32be43b52b2 -r 355b2eb9f553 opt.c --- a/opt.c Wed Mar 05 00:43:11 2008 +0000 +++ b/opt.c Wed Mar 05 03:59:07 2008 +0000 @@ -62,8 +62,8 @@ switch(o->type){ case FF_OPT_TYPE_FLAGS: - case FF_OPT_TYPE_INT: *(int *)dst= lrintf(num/den)*intnum; break; - case FF_OPT_TYPE_INT64: *(int64_t *)dst= lrintf(num/den)*intnum; break; + case FF_OPT_TYPE_INT: *(int *)dst= llrint(num/den)*intnum; break; + case FF_OPT_TYPE_INT64: *(int64_t *)dst= llrint(num/den)*intnum; break; case FF_OPT_TYPE_FLOAT: *(float *)dst= num*intnum/den; break; case FF_OPT_TYPE_DOUBLE:*(double *)dst= num*intnum/den; break; case FF_OPT_TYPE_RATIONAL: @@ -254,7 +254,7 @@ if(o_out) *o_out= o; switch(o->type){ - case FF_OPT_TYPE_FLAGS: + case FF_OPT_TYPE_FLAGS: *intnum= *(unsigned int*)dst;return 0; case FF_OPT_TYPE_INT: *intnum= *(int *)dst;return 0; case FF_OPT_TYPE_INT64: *intnum= *(int64_t*)dst;return 0; case FF_OPT_TYPE_FLOAT: *num= *(float *)dst;return 0;