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
