[FFmpeg-devel] [PATCH 1/2] fix the bug that AV_PKT_FLAG_CORRUPT flags lost after parse_packet()
Marton Balint
cus at passwd.hu
Sun Jun 28 23:26:58 EEST 2020
On Sat, 13 Jun 2020, Andreas Rheinhardt wrote:
> levizhao at live.cn:
>> From: zhaoyi <levizhao at live.cn>
>>
>> ---
>> 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
More information about the ffmpeg-devel
mailing list