diff --git a/libavformat/mux.c b/libavformat/mux.c index d93dc73f8e..3ba95d28c6 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -1014,15 +1014,9 @@ int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *pkt, AVStream *const st = s->streams[pktl->pkt.stream_index]; FFStream *const sti = ffstream(st); - *pkt = pktl->pkt; - - si->packet_buffer = pktl->next; - if (!si->packet_buffer) - si->packet_buffer_end = NULL; - if (sti->last_in_packet_buffer == pktl) sti->last_in_packet_buffer = NULL; - av_freep(&pktl); + avpriv_packet_list_get(&si->packet_buffer, &si->packet_buffer_end, pkt); return 1; } else { diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c index 873d64a5fd..4c02e3e264 100644 --- a/libavformat/mxfenc.c +++ b/libavformat/mxfenc.c @@ -3128,14 +3128,10 @@ static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, int flus pktl = si->packet_buffer; } - *out = pktl->pkt; - av_log(s, AV_LOG_TRACE, "out st:%d dts:%"PRId64"\n", (*out).stream_index, (*out).dts); - si->packet_buffer = pktl->next; if (ffstream(s->streams[pktl->pkt.stream_index])->last_in_packet_buffer == pktl) ffstream(s->streams[pktl->pkt.stream_index])->last_in_packet_buffer = NULL; - if (!si->packet_buffer) - si->packet_buffer_end = NULL; - av_freep(&pktl); + avpriv_packet_list_get(&si->packet_buffer, &si->packet_buffer_end, out); + av_log(s, AV_LOG_TRACE, "out st:%d dts:%"PRId64"\n", out->stream_index, out->dts); return 1; } else { out: