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)) {