mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
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.
This commit is contained in:
parent
92d5fb8660
commit
36d034d1e4
1 changed files with 10 additions and 0 deletions
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue