static void nle_operation_dispose (GObject * object) { NleOperation *oper = (NleOperation *) object; GST_DEBUG_OBJECT (object, "Disposing of source pad"); nle_object_ghost_pad_set_target (NLE_OBJECT (object), NLE_OBJECT (object)->srcpad, NULL); GST_DEBUG_OBJECT (object, "Disposing of sink pad(s)"); while (oper->sinks) { GstPad *ghost = (GstPad *) oper->sinks->data; remove_sink_pad (oper, ghost); } GST_DEBUG_OBJECT (object, "Done, calling parent class ::dispose()"); G_OBJECT_CLASS (parent_class)->dispose (object); }
static void nle_source_dispose (GObject * object) { NleObject *nleobject = (NleObject *) object; NleSource *source = (NleSource *) object; NleSourcePrivate *priv = source->priv; GST_DEBUG_OBJECT (object, "dispose"); if (priv->dispose_has_run) return; GST_OBJECT_LOCK (object); if (priv->probeid) { GST_DEBUG_OBJECT (source, "Removing blocking probe! %lu", priv->probeid); priv->areblocked = FALSE; gst_pad_remove_probe (priv->ghostedpad, priv->probeid); priv->probeid = 0; } GST_OBJECT_UNLOCK (object); if (source->element) { gst_object_unref (source->element); source->element = NULL; } priv->dispose_has_run = TRUE; if (priv->ghostedpad) nle_object_ghost_pad_set_target (nleobject, nleobject->srcpad, NULL); if (priv->staticpad) { gst_object_unref (priv->staticpad); priv->staticpad = NULL; } G_OBJECT_CLASS (parent_class)->dispose (object); }