Commit 87c05135 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

baseparse: Recheck after pre_push_frame() if there are tags pending

Many parsers are storing tags only in pre_push_frame(), if we wouldn't check
afterwards we would push buffers before those tags and a lot of code assumes that
tags are available before preroll.

https://bugzilla.gnome.org/show_bug.cgi?id=763553
parent 46573a27
......@@ -2449,6 +2449,14 @@ gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
frame->flags |= GST_BASE_PARSE_FRAME_FLAG_CLIP;
}
/* Push pending events, if there are any new ones
* like tags added by pre_push_frame */
if (parse->priv->tags_changed) {
gst_base_parse_queue_tag_event_update (parse);
parse->priv->tags_changed = FALSE;
}
gst_base_parse_push_pending_events (parse);
/* take final ownership of frame buffer */
if (frame->out_buffer) {
buffer = frame->out_buffer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment