lavc: preserve avpkt->destruct in ff_alloc_packet().
authorAnton Khirnov <anton@khirnov.net>
Fri, 24 Feb 2012 21:39:19 +0000 (22:39 +0100)
committerAnton Khirnov <anton@khirnov.net>
Sat, 3 Mar 2012 05:31:41 +0000 (06:31 +0100)
Also, don't bother with saving/restoring data, av_init_packet doesn't
touch it.

libavcodec/utils.c

index d797c8a..a91eab1 100644 (file)
@@ -838,14 +838,13 @@ int ff_alloc_packet(AVPacket *avpkt, int size)
         return AVERROR(EINVAL);
 
     if (avpkt->data) {
-        uint8_t *pkt_data;
+        void *destruct = avpkt->destruct;
 
         if (avpkt->size < size)
             return AVERROR(EINVAL);
 
-        pkt_data = avpkt->data;
         av_init_packet(avpkt);
-        avpkt->data = pkt_data;
+        avpkt->destruct = destruct;
         avpkt->size = size;
         return 0;
     } else {