avconv: move the no streams failure to open_output_file()
authorAnton Khirnov <anton@khirnov.net>
Wed, 15 Jul 2015 13:51:39 +0000 (15:51 +0200)
committerAnton Khirnov <anton@khirnov.net>
Sun, 19 Jul 2015 07:38:28 +0000 (09:38 +0200)
It is a better place for it, there is no reason to wait until
transcode_init().

avconv.c
avconv_opt.c

index 098e88b..6557754 100644 (file)
--- a/avconv.c
+++ b/avconv.c
@@ -1679,16 +1679,6 @@ static int transcode_init(void)
                 input_streams[j + ifile->ist_index]->start = av_gettime_relative();
     }
 
-    /* output stream init */
-    for (i = 0; i < nb_output_files; i++) {
-        oc = output_files[i]->ctx;
-        if (!oc->nb_streams && !(oc->oformat->flags & AVFMT_NOSTREAMS)) {
-            av_dump_format(oc, i, oc->filename, 1);
-            av_log(NULL, AV_LOG_ERROR, "Output file #%d does not contain any stream\n", i);
-            return AVERROR(EINVAL);
-        }
-    }
-
     /* init complex filtergraphs */
     for (i = 0; i < nb_filtergraphs; i++)
         if ((ret = avfilter_graph_config(filtergraphs[i]->graph, NULL)) < 0)
index e231f53..1ec165d 100644 (file)
@@ -1622,6 +1622,12 @@ loop_end:
         avio_close(pb);
     }
 
+    if (!oc->nb_streams && !(oc->oformat->flags & AVFMT_NOSTREAMS)) {
+        av_dump_format(oc, nb_output_files - 1, oc->filename, 1);
+        av_log(NULL, AV_LOG_ERROR, "Output file #%d does not contain any stream\n", nb_output_files - 1);
+        exit_program(1);
+    }
+
     /* check if all codec options have been used */
     unused_opts = strip_specifiers(o->g->codec_opts);
     for (i = of->ost_index; i < nb_output_streams; i++) {