# HG changeset patch # User michael # Date 1173234095 0 # Node ID 2faa1399dd68fcb162e55d4295f311146b6d6aef # Parent b0016ed890485de384f8bc076070ba09f18c76a0 add av_opt_set_defaults2() which sets just defaults from AVOptions whos flags match a user specified & mask = flags diff -r b0016ed89048 -r 2faa1399dd68 opt.c --- a/opt.c Wed Mar 07 02:03:44 2007 +0000 +++ b/opt.c Wed Mar 07 02:21:35 2007 +0000 @@ -343,10 +343,12 @@ * * @param s AVCodecContext or AVFormatContext for which the defaults will be set */ -void av_opt_set_defaults(void *s) +void av_opt_set_defaults2(void *s, int mask, int flags) { const AVOption *opt = NULL; while ((opt = av_next_option(s, opt)) != NULL) { + if((opt->flags & mask) != flags) + continue; switch(opt->type) { case FF_OPT_TYPE_CONST: /* Nothing to be done here */ @@ -379,3 +381,7 @@ } } +void av_opt_set_defaults(void *s){ + av_opt_set_defaults2(s, 0, 0); +} + diff -r b0016ed89048 -r 2faa1399dd68 opt.h --- a/opt.h Wed Mar 07 02:03:44 2007 +0000 +++ b/opt.h Wed Mar 07 02:21:35 2007 +0000 @@ -80,5 +80,6 @@ const AVOption *av_next_option(void *obj, const AVOption *last); int av_opt_show(void *obj, void *av_log_obj); void av_opt_set_defaults(void *s); +void av_opt_set_defaults2(void *s, int mask, int flags); #endif