{
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++) {
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);