mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
baseparse: update the duration variable before emitting the bus
Otherwise the application might still get the old value if it asks between the message and the real update.
This commit is contained in:
parent
53cbbcd8d9
commit
8f4ef80fc4
1 changed files with 6 additions and 4 deletions
|
@ -1543,16 +1543,18 @@ gst_base_parse_update_duration (GstBaseParse * baseparse)
|
|||
/* inform if duration changed, but try to avoid spamming */
|
||||
parse->priv->estimated_drift +=
|
||||
dest_value - parse->priv->estimated_duration;
|
||||
|
||||
parse->priv->estimated_duration = dest_value;
|
||||
GST_LOG_OBJECT (parse,
|
||||
"updated estimated duration to %" GST_TIME_FORMAT,
|
||||
GST_TIME_ARGS (dest_value));
|
||||
|
||||
if (parse->priv->estimated_drift > GST_SECOND ||
|
||||
parse->priv->estimated_drift < -GST_SECOND) {
|
||||
gst_element_post_message (GST_ELEMENT (parse),
|
||||
gst_message_new_duration_changed (GST_OBJECT (parse)));
|
||||
parse->priv->estimated_drift = 0;
|
||||
}
|
||||
parse->priv->estimated_duration = dest_value;
|
||||
GST_LOG_OBJECT (parse,
|
||||
"updated estimated duration to %" GST_TIME_FORMAT,
|
||||
GST_TIME_ARGS (dest_value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue