diff options
author | Edward Hervey <edward.hervey@collabora.co.uk> | 2011-10-06 10:49:15 +0200 |
---|---|---|
committer | Edward Hervey <edward.hervey@collabora.co.uk> | 2011-10-06 10:49:15 +0200 |
commit | ef911cd42be1f56646a1d2b0bf1b1acb4f5ffa5b (patch) | |
tree | b5c3645b08083e2b35e8559de21bc24ccb0172f5 | |
parent | a9352d2519f02c6afdfae4cf3d05eaf4479f7ecb (diff) |
gnlsource: Don't remove probes that don't exist
-rw-r--r-- | gnl/gnlsource.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/gnl/gnlsource.c b/gnl/gnlsource.c index aca1bdd..2f13bd1 100644 --- a/gnl/gnlsource.c +++ b/gnl/gnlsource.c @@ -244,8 +244,10 @@ element_pad_removed_cb (GstElement * element G_GNUC_UNUSED, GstPad * pad, GST_DEBUG_OBJECT (source, "Clearing up ghostpad"); source->priv->areblocked = FALSE; - gst_pad_remove_probe (pad, source->priv->probeid); - source->priv->probeid = 0; + if (source->priv->probeid) { + gst_pad_remove_probe (pad, source->priv->probeid); + source->priv->probeid = 0; + } gnl_object_remove_ghost_pad ((GnlObject *) source, source->priv->ghostpad); @@ -329,8 +331,10 @@ ghost_seek_pad (GnlSource * source) GST_DEBUG_OBJECT (source, "about to unblock %s:%s", GST_DEBUG_PAD_NAME (pad)); source->priv->areblocked = FALSE; - gst_pad_remove_probe (pad, source->priv->probeid); - source->priv->probeid = 0; + if (source->priv->probeid) { + gst_pad_remove_probe (pad, source->priv->probeid); + source->priv->probeid = 0; + } gst_element_no_more_pads (GST_ELEMENT (source)); source->priv->pendingblock = FALSE; @@ -570,8 +574,10 @@ gnl_source_change_state (GstElement * element, GstStateChange transition) gst_ghost_pad_get_target ((GstGhostPad *) source->priv->ghostpad); if (target) { - gst_pad_remove_probe (target, source->priv->probeid); - source->priv->probeid = 0; + if (source->priv->probeid) { + gst_pad_remove_probe (target, source->priv->probeid); + source->priv->probeid = 0; + } gst_object_unref (target); } gnl_object_remove_ghost_pad ((GnlObject *) source, |