diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2010-09-17 18:33:29 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2010-10-01 12:15:48 +0200 |
commit | 80ba9a1a3e93c4aad4d000128e058e4d69fc6761 (patch) | |
tree | e75bf58e40ec3665f7f9afc63300f2003bb38d9e | |
parent | 4dff7c81d6a4ee1543be70d13ecfad16304ed96b (diff) |
baseparse: post duration message if average bitrates is updated
-rw-r--r-- | gst/audioparsers/gstbaseparse.c | 8 |
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)); } /** |