diff --git a/avconv.c b/avconv.c index c8ffd64156767510dfa179de0b4b9cf92f654b31..11d77419eb916db2f2c99b2f3fcf850c898be0da 100644 --- a/avconv.c +++ b/avconv.c @@ -1397,7 +1397,7 @@ static void generate_silence(uint8_t* buf, enum AVSampleFormat sample_fmt, size_ memset(buf, fill_char, size); } -static void flush_encoders(int ist_index, OutputStream *ost_table, int nb_ostreams) +static void flush_encoders(OutputStream *ost_table, int nb_ostreams) { int i, ret; @@ -1406,7 +1406,7 @@ static void flush_encoders(int ist_index, OutputStream *ost_table, int nb_ostrea AVCodecContext *enc = ost->st->codec; AVFormatContext *os = output_files[ost->file_index].ctx; - if (ost->source_index != ist_index || !ost->encoding_needed) + if (!ost->encoding_needed) continue; if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <=1) @@ -1797,10 +1797,6 @@ static int output_packet(InputStream *ist, int ist_index, } } discard_packet: - if (pkt == NULL) { - /* EOF handling */ - flush_encoders(ist_index, ost_table, nb_ostreams); - } return 0; } @@ -2371,6 +2367,7 @@ static int transcode(OutputFile *output_files, output_packet(ist, i, output_streams, nb_output_streams, NULL); } } + flush_encoders(output_streams, nb_output_streams); term_exit();