baseparse: If available, return average bitrate upstream
authorEdward Hervey <edward@centricular.com>
Thu, 15 Sep 2022 14:23:16 +0000 (16:23 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 16 Sep 2022 16:12:03 +0000 (16:12 +0000)
Helps improve queue2 buffering for single stream playback (ex: FLAC or mp3)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3033>

subprojects/gstreamer/libs/gst/base/gstbaseparse.c

index 660439b..e1920a9 100644 (file)
@@ -1577,6 +1577,16 @@ gst_base_parse_sink_query_default (GstBaseParse * parse, GstQuery * query)
   pad = GST_BASE_PARSE_SINK_PAD (parse);
 
   switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_BITRATE:
+    {
+      if (parse->priv->avg_bitrate) {
+        gst_query_set_bitrate (query, parse->priv->avg_bitrate);
+        res = TRUE;
+      } else {
+        res = gst_pad_query_default (pad, GST_OBJECT_CAST (parse), query);
+      }
+      break;
+    }
     case GST_QUERY_CAPS:
     {
       GstBaseParseClass *bclass;