static gboolean gst_rtp_ssrc_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) { GstRtpSsrcDemux *demux; struct ForwardEventData fdata; demux = GST_RTP_SSRC_DEMUX (parent); fdata.demux = demux; fdata.pad = pad; fdata.event = event; fdata.res = TRUE; gst_pad_forward (pad, forward_event, &fdata); gst_event_unref (event); return fdata.res; }
static gboolean _forward_event_to_all_sinkpads (GstAggregator * self, GstEvent * event, gboolean flush) { EventData evdata; evdata.event = event; evdata.result = TRUE; evdata.flush = flush; /* We first need to set all pads as flushing in a first pass * as flush_start flush_stop is sometimes sent synchronously * while we send the seek event */ if (flush) gst_aggregator_iterate_sinkpads (self, (GstAggregatorPadForeachFunc) _set_flush_pending, NULL); gst_pad_forward (self->srcpad, (GstPadForwardFunction) event_forward_func, &evdata); gst_event_unref (event); return evdata.result; }