diff --git a/libavformat/utils.c b/libavformat/utils.c index 0afc63bb94..9c3acfb31c 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -295,7 +295,7 @@ int av_get_packet(ByteIOContext *s, AVPacket *pkt, int size) 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)