Commit f4ad4f88 authored by reimar's avatar reimar

Simplify packet duplication code in ff_interleave_add_packet.

Behaviour only changes if pkt->destuct neither av_destruct_packet,
av_destruct_packet_nofree nor NULL, in which case the new code avoids a double free.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18452 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent e6b8dab0
......@@ -2613,10 +2613,8 @@ void ff_interleave_add_packet(AVFormatContext *s, AVPacket *pkt,
this_pktl = av_mallocz(sizeof(AVPacketList));
this_pktl->pkt= *pkt;
if(pkt->destruct == av_destruct_packet)
pkt->destruct= NULL; // not shared -> must keep original from being freed
else
av_dup_packet(&this_pktl->pkt); //shared -> must dup
pkt->destruct= NULL; // do not free original but only the copy
av_dup_packet(&this_pktl->pkt); // duplicate the packet if it uses non-alloced memory
next_point = &s->packet_buffer;
while(*next_point){
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment