From 90218243d268efc4b5b073905cb6469c89b25c6e Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 14 Jul 2023 09:08:21 -0400 Subject: [PATCH] ges: track-element: Set the nleobject as soon as possible Some subclasses might need to have access to it when configuring their element Part-of: --- .../gst-editing-services/ges/ges-track-element.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/subprojects/gst-editing-services/ges/ges-track-element.c b/subprojects/gst-editing-services/ges/ges-track-element.c index 0e50e7e331..ca14e77387 100644 --- a/subprojects/gst-editing-services/ges/ges-track-element.c +++ b/subprojects/gst-editing-services/ges/ges-track-element.c @@ -304,9 +304,11 @@ ges_track_element_set_asset (GESExtractable * extractable, GESAsset * asset) gst_object_set_name (GST_OBJECT (nleobject), tmp); g_free (tmp); - object->priv->nleobject = gst_object_ref (nleobject); - g_object_set_qdata (G_OBJECT (nleobject), NLE_OBJECT_TRACK_ELEMENT_QUARK, - object); + if (!object->priv->nleobject) { + object->priv->nleobject = gst_object_ref (nleobject); + g_object_set_qdata (G_OBJECT (nleobject), NLE_OBJECT_TRACK_ELEMENT_QUARK, + object); + } /* Set some properties on the NleObject */ g_object_set (object->priv->nleobject, @@ -1009,6 +1011,10 @@ ges_track_element_create_gnl_object_func (GESTrackElement * self) if (G_UNLIKELY (nleobject == NULL)) goto no_nleobject; + self->priv->nleobject = gst_object_ref (nleobject); + g_object_set_qdata (G_OBJECT (nleobject), NLE_OBJECT_TRACK_ELEMENT_QUARK, + self); + if (klass->create_element) { GST_DEBUG ("Calling subclass 'create_element' vmethod"); child = klass->create_element (self);