From 2841b8f0b25c769be9600e13c4bd1d8474f4ec79 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 5 Oct 2017 13:35:14 +0100 Subject: [PATCH] basesink: use new gst_buffer_list_calculate_size() utility function --- libs/gst/base/gstbasesink.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 53cb636..b4b11f0 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -3343,13 +3343,6 @@ gst_base_sink_needs_preroll (GstBaseSink * basesink) return res; } -static gboolean -count_list_bytes (GstBuffer ** buffer, guint idx, GstBaseSinkPrivate * priv) -{ - priv->rc_accumulated += gst_buffer_get_size (*buffer); - return TRUE; -} - /* with STREAM_LOCK, PREROLL_LOCK * * Takes a buffer and compare the timestamps with the last segment. @@ -3530,12 +3523,14 @@ again: goto dropped; if (priv->max_bitrate) { - if (is_list) { - gst_buffer_list_foreach (GST_BUFFER_LIST_CAST (obj), - (GstBufferListFunc) count_list_bytes, priv); - } else { - priv->rc_accumulated += gst_buffer_get_size (GST_BUFFER_CAST (obj)); - } + gsize size; + + if (is_list) + size = gst_buffer_list_calculate_size (GST_BUFFER_LIST_CAST (obj)); + else + size = gst_buffer_get_size (GST_BUFFER_CAST (obj)); + + priv->rc_accumulated += size; priv->rc_next = priv->rc_time + gst_util_uint64_scale (priv->rc_accumulated, 8 * GST_SECOND, priv->max_bitrate); } -- 2.7.4