From 93f72a50413846bcaa5a0611903c191f6cf7109a Mon Sep 17 00:00:00 2001 From: Haihao Xiang Date: Wed, 21 Aug 2019 12:27:57 +0800 Subject: [PATCH] msdkvpp: unref buffer pools Unref the pools first in caps re-negotiation to avoid memory leak --- sys/msdk/gstmsdkvpp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/msdk/gstmsdkvpp.c b/sys/msdk/gstmsdkvpp.c index 9432dc5..ee0029f 100644 --- a/sys/msdk/gstmsdkvpp.c +++ b/sys/msdk/gstmsdkvpp.c @@ -1113,6 +1113,9 @@ gst_msdkvpp_set_caps (GstBaseTransform * trans, GstCaps * caps, gst_msdkvpp_set_passthrough (thiz); /* Ensure sinkpad buffer pool */ + if (thiz->sinkpad_buffer_pool) + gst_object_unref (thiz->sinkpad_buffer_pool); + thiz->sinkpad_buffer_pool = gst_msdkvpp_create_buffer_pool (thiz, GST_PAD_SINK, caps, thiz->in_num_surfaces); @@ -1121,6 +1124,9 @@ gst_msdkvpp_set_caps (GstBaseTransform * trans, GstCaps * caps, return FALSE; } /* Ensure a srcpad buffer pool */ + if (thiz->srcpad_buffer_pool) + gst_object_unref (thiz->srcpad_buffer_pool); + thiz->srcpad_buffer_pool = gst_msdkvpp_create_buffer_pool (thiz, GST_PAD_SRC, out_caps, thiz->out_num_surfaces); -- 2.7.4