From: Sebastian Dröge Date: Fri, 29 Nov 2013 12:32:55 +0000 (+0100) Subject: theoraparse: Fix event handling X-Git-Tag: 1.3.1~351 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d4cf74e0b15f653a1aa983d6dbf3ea58c345eae;p=platform%2Fupstream%2Fgst-plugins-base.git theoraparse: Fix event handling Send CAPS event before any SEGMENT events or any other events that must come in order after the CAPS event. --- diff --git a/ext/theora/gsttheoraparse.c b/ext/theora/gsttheoraparse.c index d44c55b..062cacd 100644 --- a/ext/theora/gsttheoraparse.c +++ b/ext/theora/gsttheoraparse.c @@ -365,11 +365,11 @@ theora_parse_push_headers (GstTheoraParse * parse) { gint i; - theora_parse_drain_event_queue (parse); - if (!parse->streamheader_received) theora_parse_set_streamheader (parse); + theora_parse_drain_event_queue (parse); + /* ignore return values, we pass along the result of pushing data packets only */ for (i = 0; i < 3; i++) { @@ -719,7 +719,8 @@ theora_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) ret = gst_pad_event_default (pad, parent, event); break; default: - if (parse->send_streamheader && GST_EVENT_IS_SERIALIZED (event)) + if (parse->send_streamheader && GST_EVENT_IS_SERIALIZED (event) + && GST_EVENT_TYPE (event) > GST_EVENT_CAPS) ret = theora_parse_queue_event (parse, event); else ret = gst_pad_event_default (pad, parent, event);