From: Wim Taymans Date: Tue, 12 Jun 2012 12:24:27 +0000 (+0200) Subject: basesrc: handle flush events on the element as well X-Git-Tag: RELEASE-0.11.93~346 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=36d034d1e4b7611be61cae80526ff0a7b18cebdb;p=platform%2Fupstream%2Fgstreamer.git basesrc: handle flush events on the element as well Handle flush-start and flush-stop sent on the element as well and send them downstream. Make sure to send a segment event after the flush stop. --- diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 2d99fd3..e034580 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -1675,9 +1675,19 @@ gst_base_src_send_event (GstElement * element, GstEvent * event) switch (GST_EVENT_TYPE (event)) { /* bidirectional events */ case GST_EVENT_FLUSH_START: + GST_DEBUG_OBJECT (src, "pushing flush-start event downstream"); + result = gst_pad_push_event (src->srcpad, event); + event = NULL; + break; case GST_EVENT_FLUSH_STOP: + GST_LIVE_LOCK (src->srcpad); + src->priv->segment_pending = TRUE; /* sending random flushes downstream can break stuff, * especially sync since all segment info will get flushed */ + GST_DEBUG_OBJECT (src, "pushing flush-stop event downstream"); + result = gst_pad_push_event (src->srcpad, event); + GST_LIVE_UNLOCK (src->srcpad); + event = NULL; break; /* downstream serialized events */