ffmpeg: remove now unneeded old *_codec_name code
[ffmpeg.git] / ffmpeg_opt.c
index db5926a..0bdbd67 100644 (file)
@@ -59,7 +59,7 @@
     int i, ret;\
     for (i = 0; i < o->nb_ ## name; i++) {\
         char *spec = o->name[i].specifier;\
-        if (!strcmp(spec, mediatype) || !*spec)\
+        if (!strcmp(spec, mediatype))\
             outvar = o->name[i].u.type;\
         else if (ret < 0)\
             exit_program(1);\
@@ -91,9 +91,6 @@ int frame_bits_per_raw_sample = 0;
 
 
 static int intra_only         = 0;
-static const char *video_codec_name    = NULL;
-static const char *audio_codec_name    = NULL;
-static const char *subtitle_codec_name = NULL;
 static int file_overwrite     = 0;
 static int no_file_overwrite  = 0;
 static int video_discard      = 0;
@@ -178,21 +175,18 @@ static int opt_video_standard(void *optctx, const char *opt, const char *arg)
 static int opt_audio_codec(void *optctx, const char *opt, const char *arg)
 {
     OptionsContext *o = optctx;
-    audio_codec_name = arg;
     return parse_option(o, "codec:a", arg, options);
 }
 
 static int opt_video_codec(void *optctx, const char *opt, const char *arg)
 {
     OptionsContext *o = optctx;
-    video_codec_name = arg;
     return parse_option(o, "codec:v", arg, options);
 }
 
 static int opt_subtitle_codec(void *optctx, const char *opt, const char *arg)
 {
     OptionsContext *o = optctx;
-    subtitle_codec_name = arg;
     return parse_option(o, "codec:s", arg, options);
 }
 
@@ -1496,6 +1490,7 @@ void opt_output_file(void *optctx, const char *filename)
             }
         }
     } else if (!o->nb_stream_maps) {
+        char *subtitle_codec_name = NULL;
         /* pick the "best" stream of each type */
 
         /* video: highest resolution */
@@ -1532,6 +1527,7 @@ void opt_output_file(void *optctx, const char *filename)
         }
 
         /* subtitles: pick first */
+        MATCH_PER_TYPE_OPT(codec_names, str, subtitle_codec_name, oc, "s");
         if (!o->subtitle_disable && (oc->oformat->subtitle_codec != AV_CODEC_ID_NONE || subtitle_codec_name)) {
             for (i = 0; i < nb_input_streams; i++)
                 if (input_streams[i]->st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
@@ -1960,9 +1956,11 @@ static int opt_preset(void *optctx, const char *opt, const char *arg)
     OptionsContext *o = optctx;
     FILE *f=NULL;
     char filename[1000], line[1000], tmp_line[1000];
-    const char *codec_name = *opt == 'v' ? video_codec_name :
-                             *opt == 'a' ? audio_codec_name :
-                                           subtitle_codec_name;
+    const char *codec_name = NULL;
+
+    tmp_line[0] = *opt;
+    tmp_line[1] = 0;
+    MATCH_PER_TYPE_OPT(codec_names, str, codec_name, NULL, tmp_line);
 
     if (!(f = get_preset_file(filename, sizeof(filename), arg, *opt == 'f', codec_name))) {
         if(!strncmp(arg, "libx264-lossless", strlen("libx264-lossless"))){