summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2015-03-14 15:58:00 +0000
committerTim-Philipp Müller <tim@centricular.com>2015-03-14 16:02:03 +0000
commit4a1cee3c447d4dacc92f5caa5c58e12bbc460263 (patch)
tree4fcb10f9adf081e87219904b7803c61344654d25
parent5253a4d879859997d1e1c2b1b101ab81541d29cb (diff)
adapter: avoid multiple calls to gst_buffer_get_size() in macro
-rw-r--r--libs/gst/base/gstadapter.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index 855d35040..bf605732c 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -795,10 +795,11 @@ gst_adapter_take_buffer_fast (GstAdapter * adapter, gsize nbytes)
}
for (item = adapter->buflist; item && left > 0; item = item->next) {
- gsize size;
+ gsize size, cur_size;
cur = item->data;
- size = MIN (gst_buffer_get_size (cur) - skip, left);
+ cur_size = gst_buffer_get_size (cur);
+ size = MIN (cur_size - skip, left);
GST_LOG_OBJECT (adapter, "appending %" G_GSIZE_FORMAT " bytes"
" via region copy", size);
@@ -924,7 +925,7 @@ gst_adapter_take_list (GstAdapter * adapter, gsize nbytes)
{
GQueue queue = G_QUEUE_INIT;
GstBuffer *cur;
- gsize hsize, skip;
+ gsize hsize, skip, cur_size;
g_return_val_if_fail (GST_IS_ADAPTER (adapter), NULL);
g_return_val_if_fail (nbytes <= adapter->size, NULL);
@@ -934,7 +935,8 @@ gst_adapter_take_list (GstAdapter * adapter, gsize nbytes)
while (nbytes > 0) {
cur = adapter->buflist->data;
skip = adapter->skip;
- hsize = MIN (nbytes, gst_buffer_get_size (cur) - skip);
+ cur_size = gst_buffer_get_size (cur);
+ hsize = MIN (nbytes, cur_size - skip);
cur = gst_adapter_take_buffer (adapter, hsize);