From 0d48ede4a93a9f535632c3c068ca0cee9d728267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Fri, 15 Mar 2024 19:03:58 +0100 Subject: [PATCH] va: sink reference at instantiation Part-of: --- subprojects/gst-plugins-bad/sys/va/gstvadecoder.c | 2 ++ subprojects/gst-plugins-bad/sys/va/gstvaencoder.c | 2 ++ subprojects/gst-plugins-bad/sys/va/gstvafilter.c | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/subprojects/gst-plugins-bad/sys/va/gstvadecoder.c b/subprojects/gst-plugins-bad/sys/va/gstvadecoder.c index 7eab505fe8..99de6b61ce 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvadecoder.c +++ b/subprojects/gst-plugins-bad/sys/va/gstvadecoder.c @@ -197,6 +197,8 @@ gst_va_decoder_new (GstVaDisplay * display, guint32 codec) g_return_val_if_fail (GST_IS_VA_DISPLAY (display), NULL); self = g_object_new (GST_TYPE_VA_DECODER, "display", display, NULL); + gst_object_ref_sink (self); + if (!gst_va_decoder_initialize (self, codec)) gst_clear_object (&self); diff --git a/subprojects/gst-plugins-bad/sys/va/gstvaencoder.c b/subprojects/gst-plugins-bad/sys/va/gstvaencoder.c index 923f4ed52b..09975f758e 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvaencoder.c +++ b/subprojects/gst-plugins-bad/sys/va/gstvaencoder.c @@ -576,6 +576,8 @@ gst_va_encoder_new (GstVaDisplay * display, guint32 codec, self = g_object_new (GST_TYPE_VA_ENCODER, "display", display, "va-entrypoint", entrypoint, NULL); + gst_object_ref_sink (self); + if (!gst_va_encoder_initialize (self, codec)) gst_clear_object (&self); diff --git a/subprojects/gst-plugins-bad/sys/va/gstvafilter.c b/subprojects/gst-plugins-bad/sys/va/gstvafilter.c index 98e433887c..05dff45101 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvafilter.c +++ b/subprojects/gst-plugins-bad/sys/va/gstvafilter.c @@ -171,9 +171,14 @@ gst_va_filter_init (GstVaFilter * self) GstVaFilter * gst_va_filter_new (GstVaDisplay * display) { + GstVaFilter *self; + g_return_val_if_fail (GST_IS_VA_DISPLAY (display), NULL); - return g_object_new (GST_TYPE_VA_FILTER, "display", display, NULL); + self = g_object_new (GST_TYPE_VA_FILTER, "display", display, NULL); + gst_object_ref_sink (self); + + return self; } gboolean