Do not assume that if pkt->destruct != av_destruct_packet then it is not
authorLuca Abeni <lucabe72@email.it>
Fri, 9 Jan 2009 20:10:13 +0000 (20:10 +0000)
committerLuca Abeni <lucabe72@email.it>
Fri, 9 Jan 2009 20:10:13 +0000 (20:10 +0000)
necessary to call the destruct method

Originally committed as revision 16506 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index 0afc63b..9c3acfb 100644 (file)
@@ -295,7 +295,7 @@ int av_get_packet(ByteIOContext *s, AVPacket *pkt, int size)
 
 int av_dup_packet(AVPacket *pkt)
 {
 
 int av_dup_packet(AVPacket *pkt)
 {
-    if (pkt->destruct != av_destruct_packet && pkt->data) {
+    if (((pkt->destruct == av_destruct_packet_nofree) || (pkt->destruct == NULL)) && pkt->data) {
         uint8_t *data;
         /* We duplicate the packet and don't forget to add the padding again. */
         if((unsigned)pkt->size > (unsigned)pkt->size + FF_INPUT_BUFFER_PADDING_SIZE)
         uint8_t *data;
         /* We duplicate the packet and don't forget to add the padding again. */
         if((unsigned)pkt->size > (unsigned)pkt->size + FF_INPUT_BUFFER_PADDING_SIZE)