Module: libav
Branch: master
Commit: a726d7fd4e0b112b276678ea9da9c9b3097e8b8f

Author:    Anton Khirnov <[email protected]>
Committer: Anton Khirnov <[email protected]>
Date:      Wed Jul  6 19:56:58 2011 +0200

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.

---

 libavutil/opt.c |    5 +++--
 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;

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to