only store command line parameters in contexts with matching codec_type
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 7 Mar 2007 08:34:52 +0000 (08:34 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 7 Mar 2007 08:34:52 +0000 (08:34 +0000)
Originally committed as revision 8282 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c

index 25604d7..db3f432 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3507,9 +3507,14 @@ static void show_version(void)
 
 static int opt_default(const char *opt, const char *arg){
     int type;
-    const AVOption *o;
-    for(type=0; type<CODEC_TYPE_NB; type++)
-        o = av_set_string(avctx_opts[type], opt, arg);
+    const AVOption *o= NULL;
+    int opt_types[]={AV_OPT_FLAG_VIDEO_PARAM, AV_OPT_FLAG_AUDIO_PARAM, 0, AV_OPT_FLAG_SUBTITLE_PARAM, 0};
+
+    for(type=0; type<CODEC_TYPE_NB; type++){
+        const AVOption *o2 = av_find_opt(avctx_opts[0], opt, NULL, opt_types[type], opt_types[type]);
+        if(o2)
+            o = av_set_string(avctx_opts[type], opt, arg);
+    }
     if(!o)
         o = av_set_string(avformat_opts, opt, arg);
     if(!o){