diff options
author | Anton Khirnov <anton@khirnov.net> | 2022-03-22 18:17:27 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2022-08-08 16:20:58 +0200 |
commit | a5e025e826789164569d2ff44a784cd3f953eaca (patch) | |
tree | 173f6e7eadf7e7428b349f519cd92480f4484a6c | |
parent | 61d9f34c70039f739bebf6870547edd9655002ec (diff) | |
download | ffmpeg-a5e025e826789164569d2ff44a784cd3f953eaca.tar.gz |
fftools/ffmpeg: move handling corrupt packets to the input thread
-rw-r--r-- | fftools/ffmpeg.c | 7 | ||||
-rw-r--r-- | fftools/ffmpeg_demux.c | 11 |
2 files changed, 11 insertions, 7 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 6ff5432597..0682a6fcc5 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -3729,13 +3729,6 @@ static int process_input(int file_index) if (ist->discard) goto discard_packet; - if (pkt->flags & AV_PKT_FLAG_CORRUPT) { - av_log(NULL, exit_on_error ? AV_LOG_FATAL : AV_LOG_WARNING, - "%s: corrupt input packet in stream %d\n", is->url, pkt->stream_index); - if (exit_on_error) - exit_program(1); - } - if (debug_ts) { av_log(NULL, AV_LOG_INFO, "demuxer -> ist_index:%d type:%s " "next_dts:%s next_dts_time:%s next_pts:%s next_pts_time:%s pkt_pts:%s pkt_pts_time:%s pkt_dts:%s pkt_dts_time:%s duration:%s duration_time:%s off:%s off_time:%s\n", diff --git a/fftools/ffmpeg_demux.c b/fftools/ffmpeg_demux.c index 31b233c4f4..d15cee614d 100644 --- a/fftools/ffmpeg_demux.c +++ b/fftools/ffmpeg_demux.c @@ -165,6 +165,17 @@ static void *input_thread(void *arg) continue; } + if (pkt->flags & AV_PKT_FLAG_CORRUPT) { + av_log(NULL, exit_on_error ? AV_LOG_FATAL : AV_LOG_WARNING, + "%s: corrupt input packet in stream %d\n", + f->ctx->url, pkt->stream_index); + if (exit_on_error) { + av_packet_unref(pkt); + ret = AVERROR_INVALIDDATA; + break; + } + } + msg.pkt = av_packet_alloc(); if (!msg.pkt) { av_packet_unref(pkt); |