]> git.sesse.net Git - ffmpeg/commitdiff
ffmpeg: move the avcodec_find_decoder() call to add_input_streams().
authorAnton Khirnov <anton@khirnov.net>
Tue, 30 Aug 2011 14:25:18 +0000 (16:25 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 30 Aug 2011 16:08:23 +0000 (18:08 +0200)
This makes the code simpler to understand, though it results in an
unnecessary call to avcodec_find_decoder() if the stream won't be
decoded.

ffmpeg.c

index 7c6316682136c041e19e32e53378fd7292079bbe..246f9485b719331432e9da35126381f50ea2baa5 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1891,8 +1891,6 @@ static int init_input_stream(int ist_index, OutputStream *output_streams, int nb
     InputStream *ist = &input_streams[ist_index];
     if (ist->decoding_needed) {
         AVCodec *codec = ist->dec;
-        if (!codec)
-            codec = avcodec_find_decoder(ist->st->codec->codec_id);
         if (!codec) {
             snprintf(error, sizeof(error), "Decoder (codec %s) not found for input stream #%d.%d",
                     avcodec_get_name(ist->st->codec->codec_id), ist->file_index, ist->st->index);
@@ -3061,6 +3059,8 @@ static void add_input_streams(AVFormatContext *ic)
             ist->ts_scale = strtod(scale, NULL);
 
         ist->dec = choose_codec(ic, st, dec->codec_type, codec_names);
+        if (!ist->dec)
+            ist->dec = avcodec_find_decoder(dec->codec_id);
 
         switch (dec->codec_type) {
         case AVMEDIA_TYPE_AUDIO: