basesink: use new gst_buffer_list_calculate_size() utility function

This commit is contained in:
Tim-Philipp Müller 2017-10-05 13:35:14 +01:00
parent 0ca70247fc
commit 2841b8f0b2

View file

@ -3343,13 +3343,6 @@ gst_base_sink_needs_preroll (GstBaseSink * basesink)
return res; 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 /* with STREAM_LOCK, PREROLL_LOCK
* *
* Takes a buffer and compare the timestamps with the last segment. * Takes a buffer and compare the timestamps with the last segment.
@ -3530,12 +3523,14 @@ again:
goto dropped; goto dropped;
if (priv->max_bitrate) { if (priv->max_bitrate) {
if (is_list) { gsize size;
gst_buffer_list_foreach (GST_BUFFER_LIST_CAST (obj),
(GstBufferListFunc) count_list_bytes, priv); if (is_list)
} else { size = gst_buffer_list_calculate_size (GST_BUFFER_LIST_CAST (obj));
priv->rc_accumulated += gst_buffer_get_size (GST_BUFFER_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, priv->rc_next = priv->rc_time + gst_util_uint64_scale (priv->rc_accumulated,
8 * GST_SECOND, priv->max_bitrate); 8 * GST_SECOND, priv->max_bitrate);
} }