summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2013-05-15 09:47:21 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2013-05-15 09:47:21 +0200
commitc4fe52e33ebee3802b2fd27992c1aae18f7e0d95 (patch)
treea5cab336443fcf48b51c52b192dee21b3e892692
parentbca7bdc27e2c85d4577b3b678036867a7cd751a9 (diff)
downloadgstreamer-plugins-bad-c4fe52e33ebee3802b2fd27992c1aae18f7e0d95.tar.gz
kateparse: Fix event handling
Internal state should only be reset on FLUSH_STOP, not FLUSH_START. Also forward pre-caps events immediately and don't queue them.
-rw-r--r--ext/kate/gstkateparse.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/kate/gstkateparse.c b/ext/kate/gstkateparse.c
index 7bc517303..cbbd912e0 100644
--- a/ext/kate/gstkateparse.c
+++ b/ext/kate/gstkateparse.c
@@ -421,7 +421,7 @@ gst_kate_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
parse = GST_KATE_PARSE (parent);
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_FLUSH_START:
+ case GST_EVENT_FLUSH_STOP:
gst_kate_parse_clear_queue (parse);
ret = gst_pad_event_default (pad, parent, event);
break;
@@ -436,7 +436,8 @@ gst_kate_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
ret = gst_pad_event_default (pad, parent, event);
break;
default:
- if (!parse->streamheader_sent && GST_EVENT_IS_SERIALIZED (event))
+ if (!parse->streamheader_sent && GST_EVENT_IS_SERIALIZED (event)
+ && GST_EVENT_TYPE (event) > GST_EVENT_CAPS)
ret = gst_kate_parse_queue_event (parse, event);
else
ret = gst_pad_event_default (pad, parent, event);