avformat/utils: use av_packet_make_refcounted to ensure packets are ref counted

Simplifies code, while also fixing a potential leak of side data in pkt.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2018-03-24 22:33:32 -03:00
parent 265ec55983
commit 02ae52db87
1 changed files with 3 additions and 7 deletions

View File

@ -867,13 +867,9 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt)
continue;
}
if (!pkt->buf) {
AVPacket tmp = { 0 };
err = av_packet_ref(&tmp, pkt);
if (err < 0)
return err;
*pkt = tmp;
}
err = av_packet_make_refcounted(pkt);
if (err < 0)
return err;
if ((s->flags & AVFMT_FLAG_DISCARD_CORRUPT) &&
(pkt->flags & AV_PKT_FLAG_CORRUPT)) {