Mercurial > libavcodec.hg
diff opt.c @ 12509:7220936dc29c libavcodec
Deprecate av_opt_show() in favor of a new function av_opt_show2(),
which allows to specify only a subset of all the options to show.
author | stefano |
---|---|
date | Fri, 24 Sep 2010 00:51:40 +0000 |
parents | e522dbf60abd |
children | 776789af0304 |
line wrap: on
line diff
--- a/opt.c Thu Sep 23 21:33:29 2010 +0000 +++ b/opt.c Fri Sep 24 00:51:40 2010 +0000 @@ -319,12 +319,13 @@ return num*intnum/den; } -static void opt_list(void *obj, void *av_log_obj, const char *unit) +static void opt_list(void *obj, void *av_log_obj, const char *unit, + int req_flags, int rej_flags) { const AVOption *opt=NULL; while((opt= av_next_option(obj, opt))){ - if(!(opt->flags & (AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM))) + if (!(opt->flags & req_flags) || (opt->flags & rej_flags)) continue; /* Don't print CONST's on level one. @@ -383,22 +384,30 @@ av_log(av_log_obj, AV_LOG_INFO, " %s", opt->help); av_log(av_log_obj, AV_LOG_INFO, "\n"); if (opt->unit && opt->type != FF_OPT_TYPE_CONST) { - opt_list(obj, av_log_obj, opt->unit); + opt_list(obj, av_log_obj, opt->unit, req_flags, rej_flags); } } } -int av_opt_show(void *obj, void *av_log_obj){ +int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags) +{ if(!obj) return -1; av_log(av_log_obj, AV_LOG_INFO, "%s AVOptions:\n", (*(AVClass**)obj)->class_name); - opt_list(obj, av_log_obj, NULL); + opt_list(obj, av_log_obj, NULL, req_flags, rej_flags); return 0; } +#if FF_API_OPT_SHOW +int av_opt_show(void *obj, void *av_log_obj){ + return av_opt_show2(obj, av_log_obj, + AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0); +} +#endif + /** Set the values of the AVCodecContext or AVFormatContext structure. * They are set to the defaults specified in the according AVOption options * array default_val field.