summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--avconv.c4
-rw-r--r--avconv_opt.c11
2 files changed, 11 insertions, 4 deletions
diff --git a/avconv.c b/avconv.c
index a44267c9c4..0394a86047 100644
--- a/avconv.c
+++ b/avconv.c
@@ -1774,10 +1774,6 @@ static int transcode_init(void)
goto dump_format;
}
- if (ist)
- ist->decoding_needed = 1;
- ost->encoding_needed = 1;
-
set_encoder_id(output_files[ost->file_index], ost);
/*
diff --git a/avconv_opt.c b/avconv_opt.c
index 74307bfeb6..7adf051978 100644
--- a/avconv_opt.c
+++ b/avconv_opt.c
@@ -1621,6 +1621,17 @@ loop_end:
}
av_dict_free(&unused_opts);
+ /* set the encoding/decoding_needed flags */
+ for (i = of->ost_index; i < nb_output_streams; i++) {
+ OutputStream *ost = output_streams[i];
+
+ ost->encoding_needed = !ost->stream_copy;
+ if (ost->encoding_needed && ost->source_index >= 0) {
+ InputStream *ist = input_streams[ost->source_index];
+ ist->decoding_needed = 1;
+ }
+ }
+
/* check filename in case of an image number is expected */
if (oc->oformat->flags & AVFMT_NEEDNUMBER) {
if (!av_filename_number_test(oc->filename)) {