summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/opt.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/opt.c b/libavcodec/opt.c
index 94ac622180..70f2f3d91f 100644
--- a/libavcodec/opt.c
+++ b/libavcodec/opt.c
@@ -179,8 +179,10 @@ const AVOption *av_set_string(void *obj, const char *name, const char *val){
if(o->type == FF_OPT_TYPE_FLAGS){
if (cmd=='+') d= av_get_int(obj, name, NULL) | (int64_t)d;
else if(cmd=='-') d= av_get_int(obj, name, NULL) &~(int64_t)d;
- }else if(cmd=='-')
- d= -d;
+ }else{
+ if (cmd=='+') d= av_get_double(obj, name, NULL) + d;
+ else if(cmd=='-') d= av_get_double(obj, name, NULL) - d;
+ }
if (!av_set_number(obj, name, d, 1, 1))
return NULL;