- av_buffer_unref(&p->avpkt.buf);
- p->avpkt = *avpkt;
- if (avpkt->buf)
- p->avpkt.buf = av_buffer_ref(avpkt->buf);
- else {
- av_fast_malloc(&p->buf, &p->allocated_buf_size, avpkt->size + FF_INPUT_BUFFER_PADDING_SIZE);
- p->avpkt.data = p->buf;
- memcpy(p->buf, avpkt->data, avpkt->size);
- memset(p->buf + avpkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
- }
+ av_packet_unref(&p->avpkt);
+ av_packet_ref(&p->avpkt, avpkt);