From eb7e1070cf4d0e2940a27664ae17ae7f974eb839 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sun, 21 Feb 2021 17:29:45 +0100 Subject: [PATCH] Release frame data as soon as possible During a frame swap, one of the two frames involved can be released. --- app/src/video_buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/video_buffer.c b/app/src/video_buffer.c index 1aaf6945..94619840 100644 --- a/app/src/video_buffer.c +++ b/app/src/video_buffer.c @@ -100,6 +100,7 @@ video_buffer_producer_offer_frame(struct video_buffer *vb) { } } + av_frame_unref(vb->pending_frame); swap_frames(&vb->producer_frame, &vb->pending_frame); bool skipped = !vb->pending_frame_consumed; @@ -122,6 +123,7 @@ video_buffer_consumer_take_frame(struct video_buffer *vb) { vb->pending_frame_consumed = true; swap_frames(&vb->consumer_frame, &vb->pending_frame); + av_frame_unref(vb->pending_frame); if (vb->wait_consumer) { // unblock video_buffer_offer_decoded_frame()