summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2011-07-06 19:56:58 +0200
committerAnton Khirnov <anton@khirnov.net>2011-07-08 18:34:18 +0200
commita726d7fd4e0b112b276678ea9da9c9b3097e8b8f (patch)
treea65378043b4592ac8d0115a23bbb24c172215db8
parentce558c8f590610fc68596ef0b4ac2a9d299fbcb2 (diff)
downloadffmpeg-streaming-a726d7fd4e0b112b276678ea9da9c9b3097e8b8f.zip
ffmpeg-streaming-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.
-rw-r--r--libavutil/opt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavutil/opt.c b/libavutil/opt.c
index 65e0213..9c601a2 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;
OpenPOWER on IntegriCloud