On Sun, 22 May 2011, Justin Ruggles wrote:

> On 05/20/2011 07:59 AM, Martin Storsjö wrote:
> 
> > ---
> >  libavutil/opt.c |    3 ++-
> >  1 files changed, 2 insertions(+), 1 deletions(-)
> > 
> > diff --git a/libavutil/opt.c b/libavutil/opt.c
> > index 57e3248..9ff0a9a 100644
> > --- a/libavutil/opt.c
> > +++ b/libavutil/opt.c
> > @@ -262,7 +262,7 @@ static int av_get_number(void *obj, const char *name, 
> > const AVOption **o_out, do
> >  {
> >      const AVOption *o= av_find_opt(obj, name, NULL, 0, 0);
> >      void *dst;
> > -    if (!o || o->offset<=0)
> > +    if (!o || (o->offset<=0 && o->type != FF_OPT_TYPE_CONST))
> >          goto error;
> >  
> >      dst= ((uint8_t*)obj) + o->offset;
> > @@ -278,6 +278,7 @@ static int av_get_number(void *obj, const char *name, 
> > const AVOption **o_out, do
> >      case FF_OPT_TYPE_RATIONAL:  *intnum= ((AVRational*)dst)->num;
> >                                  *den   = ((AVRational*)dst)->den;
> >                                                          return 0;
> > +    case FF_OPT_TYPE_CONST:     *intnum= o->default_val.dbl;return 0;
> >      }
> >  error:
> >      *den=*intnum=0;
> 
> 
> Does this fix something?  If not, does it make some user-level task easier?

It makes it possible to check whether a particular flag is set, without 
knowing the exact value of the flag (which after this patch could be 
queried with this function). You can set such flags with e.g. 
av_set_string3(ctx, "flags", "flag1+flag2") - but given ctx, you can't 
query for what constant "flag1" corresponds to, making it impossible to 
opaquely inspect whether that flag is set in the flags field.

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

Reply via email to