Пример #1
0
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;
}
Пример #2
0
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;
}