summaryrefslogtreecommitdiff
path: root/gst/audioparsers/gstbaseparse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/audioparsers/gstbaseparse.c')
-rw-r--r--gst/audioparsers/gstbaseparse.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gst/audioparsers/gstbaseparse.c b/gst/audioparsers/gstbaseparse.c
index ea89b2510..3e989f9f9 100644
--- a/gst/audioparsers/gstbaseparse.c
+++ b/gst/audioparsers/gstbaseparse.c
@@ -974,6 +974,14 @@ gst_base_parse_update_bitrates (GstBaseParse * parse, GstBuffer * buffer)
if (parse->priv->framecount >= MIN_FRAMES_TO_POST_BITRATE &&
(update_min || update_avg || update_max))
gst_base_parse_post_bitrates (parse, update_min, update_avg, update_max);
+
+ /* If average bitrate changes that much and no valid (time) duration provided,
+ * then post a new duration message so applications can update their cached
+ * values */
+ if (update_avg && !(parse->priv->duration_fmt == GST_FORMAT_TIME &&
+ GST_CLOCK_TIME_IS_VALID (parse->priv->duration)))
+ gst_element_post_message (GST_ELEMENT (parse),
+ gst_message_new_duration (GST_OBJECT (parse), GST_FORMAT_TIME, -1));
}
/**