On Sat, 13 Jun 2020, Andreas Rheinhardt wrote:

[email protected]:
From: zhaoyi <[email protected]>

---
 libavformat/utils.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 667249362c..a74c0f74a2 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1516,6 +1516,7 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt,
         out_pkt.dts          = st->parser->dts;
         out_pkt.pos          = st->parser->pos;
         out_pkt.flags       |= pkt->flags & AV_PKT_FLAG_DISCARD;
+        out_pkt.flags       |= pkt->flags & AV_PKT_FLAG_CORRUPT;

         if (st->need_parsing == AVSTREAM_PARSE_FULL_RAW)
             out_pkt.pos = st->parser->frame_offset;

You can combine this with the line above via pkt->flags &
(AV_PKT_FLAG_DISCARD | AV_PKT_FLAG_CORRUPT).

I sent a similar patch a while ago, but Michael was against it because a parser can repacketize packets, and it is not clear what should we do if part of a packet comes from a corrupt packet.

Nevertheless I still think it is better to propagate this flag as this patch does it, than removing all corrupt flags at parsing.

Regards,
Marton

_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to