summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward.hervey@collabora.co.uk>2011-10-06 10:49:15 +0200
committerEdward Hervey <edward.hervey@collabora.co.uk>2011-10-06 10:49:15 +0200
commitef911cd42be1f56646a1d2b0bf1b1acb4f5ffa5b (patch)
treeb5c3645b08083e2b35e8559de21bc24ccb0172f5
parenta9352d2519f02c6afdfae4cf3d05eaf4479f7ecb (diff)
gnlsource: Don't remove probes that don't exist
-rw-r--r--gnl/gnlsource.c18
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,