diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-07-06 19:56:58 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-07-08 18:34:18 +0200 |
commit | a726d7fd4e0b112b276678ea9da9c9b3097e8b8f (patch) | |
tree | a65378043b4592ac8d0115a23bbb24c172215db8 /libavutil/opt.c | |
parent | ce558c8f590610fc68596ef0b4ac2a9d299fbcb2 (diff) | |
download | ffmpeg-a726d7fd4e0b112b276678ea9da9c9b3097e8b8f.tar.gz |
AVOptions: in av_opt_find() don't return named constants unless unit is specified.
That is, unless the caller explicitly asks for them.
Prevents conflict between e.g. the 'loop' option in img2 demuxer and
'loop' flag in AVCodecContext.
Diffstat (limited to 'libavutil/opt.c')
-rw-r--r-- | libavutil/opt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libavutil/opt.c b/libavutil/opt.c index 65e02135d5..9c601a2cbb 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -573,8 +573,9 @@ const AVOption *av_opt_find(void *obj, const char *name, const char *unit, return o; while (o = av_next_option(obj, o)) { - if (!strcmp(o->name, name) && (!unit || (o->unit && !strcmp(o->unit, unit))) && - (o->flags & opt_flags) == opt_flags) + if (!strcmp(o->name, name) && (o->flags & opt_flags) == opt_flags && + ((!unit && o->type != FF_OPT_TYPE_CONST) || + (unit && o->unit && !strcmp(o->unit, unit)))) return o; } return NULL; |