avconv: switch opening decoders and encoders
authorAnton Khirnov <anton@khirnov.net>
Mon, 18 Jan 2016 19:00:23 +0000 (20:00 +0100)
committerAnton Khirnov <anton@khirnov.net>
Tue, 23 Feb 2016 16:01:58 +0000 (17:01 +0100)
Open decoders first, next encoders. This makes sure that that
subtitle_header is always set properly, without relying on
avformat_find_stream_info() setting it.

avconv.c

index a84a345..a058b1d 100644 (file)
--- a/avconv.c
+++ b/avconv.c
@@ -1943,6 +1943,11 @@ static int transcode_init(void)
         }
     }
 
+    /* init input streams */
+    for (i = 0; i < nb_input_streams; i++)
+        if ((ret = init_input_stream(i, error, sizeof(error))) < 0)
+            goto dump_format;
+
     /* open each encoder */
     for (i = 0; i < nb_output_streams; i++) {
         ret = init_output_stream(output_streams[i], error, sizeof(error));
@@ -1950,10 +1955,6 @@ static int transcode_init(void)
             goto dump_format;
     }
 
-    /* init input streams */
-    for (i = 0; i < nb_input_streams; i++)
-        if ((ret = init_input_stream(i, error, sizeof(error))) < 0)
-            goto dump_format;
 
     /* discard unused programs */
     for (i = 0; i < nb_input_files; i++) {