summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Yang <seungha.yang@navercorp.com>2020-01-29 14:02:09 +0900
committerNirbheek Chauhan <nirbheek@centricular.com>2020-02-15 00:21:04 +0530
commit90f8e33cc8f0fc6e29d92c6db96ad02cd6087e44 (patch)
tree67b36f42a62b67538a5d5fac36ab194ee86abb8c
parent39aea471a3333f1bbfc227085483bba43d082315 (diff)
downloadgstreamer-plugins-bad-90f8e33cc8f0fc6e29d92c6db96ad02cd6087e44.tar.gz
msdk: Clear reference counted object in dispose() method
Follow GObject's memory management model
-rw-r--r--sys/msdk/gstmsdkdec.c12
-rw-r--r--sys/msdk/gstmsdkenc.c7
-rw-r--r--sys/msdk/gstmsdkvpp.c6
3 files changed, 17 insertions, 8 deletions
diff --git a/sys/msdk/gstmsdkdec.c b/sys/msdk/gstmsdkdec.c
index e71361fe7..86f829589 100644
--- a/sys/msdk/gstmsdkdec.c
+++ b/sys/msdk/gstmsdkdec.c
@@ -1483,13 +1483,22 @@ gst_msdkdec_get_property (GObject * object, guint prop_id, GValue * value,
}
static void
+gst_msdkdec_dispose (GObject * object)
+{
+ GstMsdkDec *thiz = GST_MSDKDEC (object);
+
+ g_clear_object (&thiz->adapter);
+
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
gst_msdkdec_finalize (GObject * object)
{
GstMsdkDec *thiz = GST_MSDKDEC (object);
g_array_unref (thiz->tasks);
thiz->tasks = NULL;
- g_clear_object (&thiz->adapter);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -1529,6 +1538,7 @@ gst_msdkdec_class_init (GstMsdkDecClass * klass)
gobject_class->set_property = gst_msdkdec_set_property;
gobject_class->get_property = gst_msdkdec_get_property;
+ gobject_class->dispose = gst_msdkdec_dispose;
gobject_class->finalize = gst_msdkdec_finalize;
element_class->set_context = gst_msdkdec_set_context;
diff --git a/sys/msdk/gstmsdkenc.c b/sys/msdk/gstmsdkenc.c
index f11c43e2e..7a818a8d7 100644
--- a/sys/msdk/gstmsdkenc.c
+++ b/sys/msdk/gstmsdkenc.c
@@ -1573,9 +1573,8 @@ gst_msdkenc_propose_allocation (GstVideoEncoder * encoder, GstQuery * query)
query);
}
-
static void
-gst_msdkenc_finalize (GObject * object)
+gst_msdkenc_dispose (GObject * object)
{
GstMsdkEnc *thiz = GST_MSDKENC (object);
@@ -1587,7 +1586,7 @@ gst_msdkenc_finalize (GObject * object)
gst_clear_object (&thiz->msdk_converted_pool);
gst_clear_object (&thiz->old_context);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
@@ -1601,7 +1600,7 @@ gst_msdkenc_class_init (GstMsdkEncClass * klass)
element_class = GST_ELEMENT_CLASS (klass);
gstencoder_class = GST_VIDEO_ENCODER_CLASS (klass);
- gobject_class->finalize = gst_msdkenc_finalize;
+ gobject_class->dispose = gst_msdkenc_dispose;
element_class->set_context = gst_msdkenc_set_context;
diff --git a/sys/msdk/gstmsdkvpp.c b/sys/msdk/gstmsdkvpp.c
index bf5430973..442e16744 100644
--- a/sys/msdk/gstmsdkvpp.c
+++ b/sys/msdk/gstmsdkvpp.c
@@ -1368,13 +1368,13 @@ gst_msdkvpp_get_property (GObject * object, guint prop_id,
}
static void
-gst_msdkvpp_finalize (GObject * object)
+gst_msdkvpp_dispose (GObject * object)
{
GstMsdkVPP *thiz = GST_MSDKVPP (object);
gst_clear_object (&thiz->old_context);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
@@ -1406,7 +1406,7 @@ gst_msdkvpp_class_init (GstMsdkVPPClass * klass)
gobject_class->set_property = gst_msdkvpp_set_property;
gobject_class->get_property = gst_msdkvpp_get_property;
- gobject_class->finalize = gst_msdkvpp_finalize;
+ gobject_class->dispose = gst_msdkvpp_dispose;
element_class->set_context = gst_msdkvpp_set_context;