static gboolean _src_event (GstAggregator * self, GstEvent * event) { gboolean res = TRUE; switch (GST_EVENT_TYPE (event)) { case GST_EVENT_SEEK: { gst_event_ref (event); res = _do_seek (self, event); if (res) self->priv->seqnum = gst_event_get_seqnum (event); gst_event_unref (event); event = NULL; goto done; } case GST_EVENT_NAVIGATION: { /* navigation is rather pointless. */ res = FALSE; gst_event_unref (event); goto done; } default: { break; } } return _forward_event_to_all_sinkpads (self, event, FALSE); done: return res; }
static gboolean _src_event (GstAggregator * self, GstEvent * event) { EventData evdata; gboolean res = TRUE; switch (GST_EVENT_TYPE (event)) { case GST_EVENT_SEEK: { gst_event_ref (event); res = _do_seek (self, event); gst_event_unref (event); event = NULL; goto done; } case GST_EVENT_NAVIGATION: { /* navigation is rather pointless. */ res = FALSE; gst_event_unref (event); goto done; } default: { break; } } evdata = _forward_event_to_all_sinkpads (self, event, FALSE); res = evdata.result; done: return res; }