diff --git a/gst/gstpad.c b/gst/gstpad.c index 3911dcf798..c49346851e 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -3553,12 +3553,18 @@ probe_hook_marshal (GHook * hook, ProbeMarshall * data) info->id = hook->hook_id; + if ((flags & GST_PAD_PROBE_TYPE_IDLE)) + pad->priv->idle_running++; + GST_OBJECT_UNLOCK (pad); ret = callback (pad, info, hook->data); GST_OBJECT_LOCK (pad); + if ((flags & GST_PAD_PROBE_TYPE_IDLE)) + pad->priv->idle_running--; + if (original_data != NULL && info->data == NULL) { GST_DEBUG_OBJECT (pad, "data item in pad probe info was dropped"); info->type = GST_PAD_PROBE_TYPE_INVALID;