@@ -122,16 +122,16 @@ static int avpacket_queue_put(AVPacketQueue *q, AVPacket *pkt)
av_log(q->avctx, AV_LOG_WARNING, "Decklink input buffer overrun!\n");
return -1;
}
- /* duplicate the packet */
- if (av_dup_packet(pkt) < 0) {
+
+ pkt1 = (AVPacketList *)av_mallocz(sizeof(AVPacketList));
+ if (!pkt1) {
return -1;
}
- pkt1 = (AVPacketList *)av_malloc(sizeof(AVPacketList));
- if (!pkt1) {
+ /* duplicate the packet */
+ if (av_packet_ref(&pkt1->pkt, pkt) < 0) {
return -1;
}
- pkt1->pkt = *pkt;
pkt1->next = NULL;
pthread_mutex_lock(&q->mutex);