Browse Source

ffmpeg_opt: Prefer audio streams with packets

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer 9 years ago
parent
commit
ae2cb9290a
1 changed files with 5 additions and 3 deletions
  1. 5 3
      ffmpeg_opt.c

+ 5 - 3
ffmpeg_opt.c

@@ -1992,12 +1992,14 @@ static int open_output_file(OptionsContext *o, const char *filename)
 
 
         /* audio: most channels */
         /* audio: most channels */
         if (!o->audio_disable && av_guess_codec(oc->oformat, NULL, filename, NULL, AVMEDIA_TYPE_AUDIO) != AV_CODEC_ID_NONE) {
         if (!o->audio_disable && av_guess_codec(oc->oformat, NULL, filename, NULL, AVMEDIA_TYPE_AUDIO) != AV_CODEC_ID_NONE) {
-            int channels = 0, idx = -1;
+            int best_score = 0, idx = -1;
             for (i = 0; i < nb_input_streams; i++) {
             for (i = 0; i < nb_input_streams; i++) {
+                int score;
                 ist = input_streams[i];
                 ist = input_streams[i];
+                score = ist->st->codec->channels + 100000000*!!ist->st->codec_info_nb_frames;
                 if (ist->st->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
                 if (ist->st->codec->codec_type == AVMEDIA_TYPE_AUDIO &&
-                    ist->st->codec->channels > channels) {
-                    channels = ist->st->codec->channels;
+                    score > best_score) {
+                    best_score = score;
                     idx = i;
                     idx = i;
                 }
                 }
             }
             }