From ef2b2243dc1e258e77dac6d702d3c1ec1b2bcc6f Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Sun, 2 Jan 2011 16:00:47 +0000 Subject: Use AVOption for muxers in ffmpeg. Patch by Anssi Hannula, anssi d hannula d iki d fi Originally committed as revision 26199 to svn://svn.ffmpeg.org/ffmpeg/trunk --- cmdutils.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'cmdutils.c') diff --git a/cmdutils.c b/cmdutils.c index 5e4b716891..a48d0c35c9 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -241,12 +241,20 @@ int opt_default(const char *opt, const char *arg){ } if (!o) { AVCodec *p = NULL; + AVOutputFormat *oformat = NULL; while ((p=av_codec_next(p))){ AVClass *c= p->priv_class; if(c && av_find_opt(&c, opt, NULL, 0, 0)) break; } - if(!p){ + if (!p) { + while ((oformat = av_oformat_next(oformat))) { + const AVClass *c = oformat->priv_class; + if (c && av_find_opt(&c, opt, NULL, 0, 0)) + break; + } + } + if(!p && !oformat){ fprintf(stderr, "Unrecognized option '%s'\n", opt); exit(1); } @@ -322,7 +330,13 @@ void set_context_opts(void *ctx, void *opts_ctx, int flags, AVCodec *codec) if(codec && codec->priv_class && avctx->priv_data){ priv_ctx= avctx->priv_data; } + } else if (!strcmp("AVFormatContext", (*(AVClass**)ctx)->class_name)) { + AVFormatContext *avctx = ctx; + if (avctx->oformat && avctx->oformat->priv_class) { + priv_ctx = avctx->priv_data; + } } + for(i=0; i