From 01ca87e7856ee57ccea6df6fde1278be38310932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 9 Dec 2009 09:47:30 +0100 Subject: [PATCH] textoverlay: Only flush downstream on seeks for flushing seeks --- ext/pango/gsttextoverlay.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index efa37e569f..cb5f55946c 100644 --- a/ext/pango/gsttextoverlay.c +++ b/ext/pango/gsttextoverlay.c @@ -895,7 +895,9 @@ gst_text_overlay_src_event (GstPad * pad, GstEvent * event) overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad)); switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_SEEK: + case GST_EVENT_SEEK:{ + GstSeekFlags flags; + /* We don't handle seek if we have not text pad */ if (!overlay->text_linked) { GST_DEBUG_OBJECT (overlay, "seek received, pushing upstream"); @@ -905,8 +907,11 @@ gst_text_overlay_src_event (GstPad * pad, GstEvent * event) GST_DEBUG_OBJECT (overlay, "seek received, driving from here"); - /* Flush downstream, FIXME, only for flushing seek */ - gst_pad_push_event (overlay->srcpad, gst_event_new_flush_start ()); + gst_event_parse_seek (event, NULL, NULL, &flags, NULL, NULL, NULL, NULL); + + /* Flush downstream, only for flushing seek */ + if (flags & GST_SEEK_FLAG_FLUSH) + gst_pad_push_event (overlay->srcpad, gst_event_new_flush_start ()); /* Mark ourself as flushing, unblock chains */ GST_OBJECT_LOCK (overlay); @@ -924,6 +929,7 @@ gst_text_overlay_src_event (GstPad * pad, GstEvent * event) gst_event_unref (event); } break; + } default: if (overlay->text_linked) { gst_event_ref (event);