bool write_buffered_frames(AVFormatContext *avctx, const vector<BufferedFrame> &buffered_frames)
{
for (const BufferedFrame &frame : buffered_frames) {
- AVPacket pkt;
- av_init_packet(&pkt);
- pkt.stream_index = frame.video_stream_idx;
- pkt.data = (uint8_t *)frame.data.data();
- pkt.size = frame.data.size();
- pkt.pts = frame.pts;
- pkt.dts = frame.pts;
- pkt.flags = AV_PKT_FLAG_KEY;
+ AVPacketWithDeleter pkt = av_packet_alloc_unique();
+ pkt->stream_index = frame.video_stream_idx;
+ pkt->data = (uint8_t *)frame.data.data();
+ pkt->size = frame.data.size();
+ pkt->pts = frame.pts;
+ pkt->dts = frame.pts;
+ pkt->flags = AV_PKT_FLAG_KEY;
- if (av_write_frame(avctx, &pkt) < 0) {
+ if (av_write_frame(avctx, pkt.get()) < 0) {
return false;
}
}