typefindhelper: Avoid using buffer_get_size in tight loops
authorEdward Hervey <edward@collabora.com>
Tue, 16 Apr 2013 17:04:48 +0000 (19:04 +0200)
committerEdward Hervey <edward@collabora.com>
Tue, 30 Jul 2013 04:59:44 +0000 (06:59 +0200)
Calling gst_buffer_get_size represented 2/3 of the cost of helper_find_peek
which was called whenever a typefindfunction wanted to peek at data.

We already know the size (from the GstMapInfo), so just use that.

libs/gst/base/gsttypefindhelper.c

index f4a458e..5f30c8c 100644 (file)
@@ -116,7 +116,7 @@ helper_find_peek (gpointer data, gint64 offset, guint size)
       GstBuffer *buf = GST_BUFFER_CAST (bmp->buffer);
 
       buf_offset = GST_BUFFER_OFFSET (buf);
-      buf_size = gst_buffer_get_size (buf);
+      buf_size = bmp->map.size;
 
       /* buffers are kept sorted by end offset (highest first) in the list, so
        * at this point we save the current position and stop searching if