Close output codecs if input codec initialisation fails.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 8 Mar 2013 01:46:46 +0000 (02:46 +0100)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Fri, 8 Mar 2013 01:46:46 +0000 (02:46 +0100)
Fixes ticket #1546 and the remaining part of ticket #1244.

ffmpeg.c

index c88665e..2ea3694 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2444,8 +2444,13 @@ 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)
+        if ((ret = init_input_stream(i, error, sizeof(error))) < 0) {
+            for (i = 0; i < nb_output_streams; i++) {
+                ost = output_streams[i];
+                avcodec_close(ost->st->codec);
+            }
             goto dump_format;
+        }
 
     /* discard unused programs */
     for (i = 0; i < nb_input_files; i++) {