diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 1077806121..5cf6a00f50 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1961,9 +1961,6 @@ static int process_input(int file_index) ist->data_size += pkt->size; ist->nb_packets++; - if (ist->discard) - goto discard_packet; - /* add the stream-global side data to the first packet */ if (ist->nb_packets == 1) { for (i = 0; i < ist->st->nb_side_data; i++) { @@ -2002,7 +1999,6 @@ static int process_input(int file_index) process_input_packet(ist, pkt, 0); -discard_packet: av_packet_free(&pkt); return 0; diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index a0ef68a8a3..630bb1c26b 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -318,7 +318,8 @@ static void *input_thread(void *arg) /* the following test is needed in case new streams appear dynamically in stream : we ignore them */ - if (pkt->stream_index >= f->nb_streams) { + if (pkt->stream_index >= f->nb_streams || + f->streams[pkt->stream_index]->discard) { report_new_stream(d, pkt); av_packet_unref(pkt); continue;