# HG changeset patch # User reimar # Date 1239489480 0 # Node ID c61f423b492c6bf704390c89754ca08a129abd76 # Parent adec0fc3010429ba622ecc7a654b2b5e4c2611a6 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. diff -r adec0fc30104 -r c61f423b492c utils.c --- a/utils.c Sat Apr 11 21:45:57 2009 +0000 +++ b/utils.c Sat Apr 11 22:38:00 2009 +0000 @@ -2613,10 +2613,8 @@ 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){