}
/* called when setting the pad inactive. It removes all sticky events from
- * the pad */
+ * the pad. must be called with object lock */
static void
remove_events (GstPad * pad)
{
pad->priv->events_cookie++;
}
+/* should be called with object lock */
static PadEvent *
find_event_by_type (GstPad * pad, GstEventType type, guint idx)
{
return ev;
}
+/* should be called with OBJECT lock */
static PadEvent *
find_event (GstPad * pad, GstEvent * event)
{
return ev;
}
+/* should be called with OBJECT lock */
static void
remove_event_by_type (GstPad * pad, GstEventType type)
{
/* check all events on srcpad against those on sinkpad. All events that are not
* on sinkpad are marked as received=FALSE and the PENDING_EVENTS is set on the
* srcpad so that the events will be sent next time */
+/* should be called with srcpad and sinkpad LOCKS */
static void
schedule_events (GstPad * srcpad, GstPad * sinkpad)
{
gst_pad_set_pad_template (pad, NULL);
+ GST_OBJECT_LOCK (pad);
remove_events (pad);
+ GST_OBJECT_UNLOCK (pad);
g_hook_list_clear (&pad->probes);