mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 03:31:05 +00:00
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
This commit is contained in:
parent
46573a27da
commit
87c0513569
1 changed files with 8 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue