From 6101fc57b8afac4f4e4aa742892f0d9c99d38a8c Mon Sep 17 00:00:00 2001 From: Ilya Konstantinov Date: Mon, 11 May 2015 16:40:07 +0200 Subject: [PATCH] vtenc: free input buffer ASAP VTCompressionSessionEncodeFrame retains the CVPixelBuffer during encoding, and will release it as soon as it can (e.g. before it even calls our callback). This means we can safely release input buffer at this point, possibly allowing the system to reuse it sooner. https://bugzilla.gnome.org/show_bug.cgi?id=750671 --- sys/applemedia/vtenc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/applemedia/vtenc.c b/sys/applemedia/vtenc.c index 7267f5ddfb..33a9abbd42 100644 --- a/sys/applemedia/vtenc.c +++ b/sys/applemedia/vtenc.c @@ -1202,6 +1202,10 @@ gst_vtenc_encode_frame (GstVTEnc * self, GstVideoCodecFrame * frame) (int) vt_status); } + /* VTCompressionSessionEncodeFrame retained pbuf + * and we want to free input_buffer ASAP */ + gst_buffer_replace (&frame->input_buffer, NULL); + gst_video_codec_frame_unref (frame); CVPixelBufferRelease (pbuf);