On Mon, 30 May 2011 15:41:37 +0300, Martin Storsjö <[email protected]> wrote:
> ---
>  libavutil/opt.c |   10 ++++++++++
>  libavutil/opt.h |    1 +
>  2 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/libavutil/opt.c b/libavutil/opt.c
> index 4e25918..db084eb 100644
> --- a/libavutil/opt.c
> +++ b/libavutil/opt.c
> @@ -320,6 +320,16 @@ int64_t av_get_int(void *obj, const char *name, const 
> AVOption **o_out)
>      return num*intnum/den;
>  }
>  
> +int av_flag_is_set(void *obj, const char *field_name, const char *flag_name)
> +{
> +    const AVOption *field = av_find_opt(obj, field_name, NULL, 0, 0);
> +    const AVOption *flag  = av_find_opt(obj, flag_name,  NULL, 0, 0);
> +
> +    if (!field || !flag)
> +        return 0;
> +    return av_get_int(obj, field_name, NULL) & (int) flag->default_val.dbl;
> +}
> +
>  static void opt_list(void *obj, void *av_log_obj, const char *unit,
>                       int req_flags, int rej_flags)
>  {
> diff --git a/libavutil/opt.h b/libavutil/opt.h
> index 6668139..4e9b6ce 100644
> --- a/libavutil/opt.h
> +++ b/libavutil/opt.h
> @@ -140,6 +140,7 @@ const AVOption *av_set_int(void *obj, const char *name, 
> int64_t n);
>  double av_get_double(void *obj, const char *name, const AVOption **o_out);
>  AVRational av_get_q(void *obj, const char *name, const AVOption **o_out);
>  int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
> +int av_flag_is_set(void *obj, const char *field_name, const char *flag_name);
>  const char *av_get_string(void *obj, const char *name, const AVOption 
> **o_out, char *buf, int buf_len);
>  const AVOption *av_next_option(void *obj, const AVOption *last);
>  

In the name of making avoptions a little nicer, could you please:
- use an avopt_ prefix
- add documentation
- minor bump+APIchanges

Also it might be good to check that the option is of type INT.

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

Reply via email to