summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-09-17 18:33:29 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-10-01 12:15:48 +0200
commit80ba9a1a3e93c4aad4d000128e058e4d69fc6761 (patch)
treee75bf58e40ec3665f7f9afc63300f2003bb38d9e
parent4dff7c81d6a4ee1543be70d13ecfad16304ed96b (diff)
baseparse: post duration message if average bitrates is updated
-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));
}
/**