diff --git a/docs/design/part-buffer.txt b/docs/design/part-buffer.txt index 81feea02ec..92582deb7a 100644 --- a/docs/design/part-buffer.txt +++ b/docs/design/part-buffer.txt @@ -36,7 +36,7 @@ Managing GstMemory A GstBuffer contains an array of pointers to GstMemory objects. -When the buffer is writable, gst_buffer_take_memory() can be used to add a +When the buffer is writable, gst_buffer_insert_memory() can be used to add a new GstMemory object to the buffer. When the array of memory is full, memory will be merged to make room for the new memory object. diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 0ad30fc570..55eaf92429 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -192,15 +192,19 @@ gst_buffer_resize gst_buffer_set_size gst_buffer_n_memory -gst_buffer_take_memory -gst_buffer_append_memory -gst_buffer_get_memory -gst_buffer_get_merged_memory -gst_buffer_remove_memory +gst_buffer_insert_memory +gst_buffer_replace_memory_range +gst_buffer_get_memory_range gst_buffer_remove_memory_range -gst_buffer_remove_all_memory -gst_buffer_replace_all_memory + +gst_buffer_prepend_memory +gst_buffer_append_memory gst_buffer_replace_memory +gst_buffer_replace_all_memory +gst_buffer_get_memory +gst_buffer_get_all_memory +gst_buffer_remove_memory +gst_buffer_remove_all_memory gst_buffer_map gst_buffer_unmap diff --git a/docs/random/porting-to-0.11.txt b/docs/random/porting-to-0.11.txt index 9a1642b9d6..0b9bd38a20 100644 --- a/docs/random/porting-to-0.11.txt +++ b/docs/random/porting-to-0.11.txt @@ -203,7 +203,7 @@ The 0.11 porting guide A GstBuffer is now a simple boxed type this means that subclassing is not possible anymore. - To add data to the buffer you would now use gst_buffer_take_memory() with + To add data to the buffer you would now use gst_buffer_insert_memory() with a GstMemory object containing the data. Multiple memory blocks can added to a GstBuffer that can then be retrieved with gst_buffer_peek_memory(). diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 00a3c42811..65e781e391 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -43,7 +43,7 @@ * size = width * height * bpp; * buffer = gst_buffer_new (); * memory = gst_allocator_alloc (NULL, size, NULL); - * gst_buffer_take_memory (buffer, -1, memory); + * gst_buffer_insert_memory (buffer, -1, memory); * ... * * @@ -197,27 +197,23 @@ _is_span (GstMemory ** mem, gsize len, gsize * poffset, GstMemory ** parent) } static GstMemory * -_get_merged_memory (GstBuffer * buffer, gboolean * merged) +_get_merged_memory (GstBuffer * buffer, guint idx, guint length) { GstMemory **mem, *result; - gsize len; mem = GST_BUFFER_MEM_ARRAY (buffer); - len = GST_BUFFER_MEM_LEN (buffer); - if (G_UNLIKELY (len == 0)) { + if (G_UNLIKELY (length == 0)) { result = NULL; - *merged = FALSE; - } else if (G_LIKELY (len == 1)) { - result = gst_memory_ref (mem[0]); - *merged = FALSE; + } else if (G_LIKELY (length == 1)) { + result = gst_memory_ref (mem[idx]); } else { GstMemory *parent = NULL; gsize size, poffset = 0; size = gst_buffer_get_size (buffer); - if (G_UNLIKELY (_is_span (mem, len, &poffset, &parent))) { + if (G_UNLIKELY (_is_span (mem + idx, length, &poffset, &parent))) { if (parent->flags & GST_MEMORY_FLAG_NO_SHARE) { GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "copy for merge %p", parent); @@ -236,7 +232,7 @@ _get_merged_memory (GstBuffer * buffer, gboolean * merged) ptr = dinfo.data; left = size; - for (i = 0; i < len && left > 0; i++) { + for (i = idx; i < length && left > 0; i++) { gst_memory_map (mem[i], &sinfo, GST_MAP_READ); tocopy = MIN (sinfo.size, left); GST_CAT_DEBUG (GST_CAT_PERFORMANCE, @@ -248,26 +244,30 @@ _get_merged_memory (GstBuffer * buffer, gboolean * merged) } gst_memory_unmap (result, &dinfo); } - *merged = TRUE; } return result; } static void -_replace_all_memory (GstBuffer * buffer, GstMemory * mem) +_replace_memory (GstBuffer * buffer, guint len, guint idx, guint length, + GstMemory * mem) { - gsize len, i; + gsize end, i; - GST_LOG ("buffer %p replace with memory %p", buffer, mem); - - len = GST_BUFFER_MEM_LEN (buffer); + end = idx + length; + GST_LOG ("buffer %p replace %u-%u with memory %p", buffer, idx, end, mem); /* unref old memory */ - for (i = 0; i < len; i++) + for (i = idx; i < end; i++) gst_memory_unref (GST_BUFFER_MEM_PTR (buffer, i)); + + if (end != len) { + g_memmove (&GST_BUFFER_MEM_PTR (buffer, idx + 1), + &GST_BUFFER_MEM_PTR (buffer, end), (len - end) * sizeof (gpointer)); + } /* replace with single memory */ - GST_BUFFER_MEM_PTR (buffer, 0) = mem; - GST_BUFFER_MEM_LEN (buffer) = 1; + GST_BUFFER_MEM_PTR (buffer, idx) = mem; + GST_BUFFER_MEM_LEN (buffer) = len - length + 1; } static inline void @@ -276,14 +276,13 @@ _memory_add (GstBuffer * buffer, guint idx, GstMemory * mem) guint i, len = GST_BUFFER_MEM_LEN (buffer); if (G_UNLIKELY (len >= GST_BUFFER_MEM_MAX)) { - gboolean merged; /* too many buffer, span them. */ /* FIXME, there is room for improvement here: We could only try to merge * 2 buffers to make some room. If we can't efficiently merge 2 buffers we * could try to only merge the two smallest buffers to avoid memcpy, etc. */ GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "memory array overflow in buffer %p", buffer); - _replace_all_memory (buffer, _get_merged_memory (buffer, &merged)); + _replace_memory (buffer, len, 0, len, _get_merged_memory (buffer, 0, len)); /* we now have 1 single spanned buffer */ len = 1; } @@ -413,8 +412,8 @@ gst_buffer_copy_into (GstBuffer * dest, GstBuffer * src, } } if (flags & GST_BUFFER_COPY_MERGE) { - gboolean merged; - _replace_all_memory (dest, _get_merged_memory (dest, &merged)); + len = GST_BUFFER_MEM_LEN (dest); + _replace_memory (dest, len, 0, len, _get_merged_memory (dest, 0, len)); } } @@ -733,16 +732,16 @@ gst_buffer_n_memory (GstBuffer * buffer) } /** - * gst_buffer_take_memory: + * gst_buffer_insert_memory: * @buffer: a #GstBuffer. * @idx: the index to add the memory at, or -1 to append it to the end * @mem: (transfer full): a #GstMemory. * - * Add the memory block @mem to @buffer at @idx. This function takes ownership + * Insert the memory block @mem to @buffer at @idx. This function takes ownership * of @mem and thus doesn't increase its refcount. */ void -gst_buffer_take_memory (GstBuffer * buffer, gint idx, GstMemory * mem) +gst_buffer_insert_memory (GstBuffer * buffer, gint idx, GstMemory * mem) { g_return_if_fail (GST_IS_BUFFER (buffer)); g_return_if_fail (gst_buffer_is_writable (buffer)); @@ -774,61 +773,67 @@ _get_mapped (GstBuffer * buffer, guint idx, GstMapInfo * info, } /** - * gst_buffer_get_memory: + * gst_buffer_get_memory_range: * @buffer: a #GstBuffer. * @idx: an index + * @length: a length * - * Get the memory block in @buffer at @idx. If @idx is -1, all memory is merged - * into one large #GstMemory object that is then returned. + * Get @length memory blocks in @buffer starting at @idx. The memory blocks will + * be merged into one large #GstMemory. * - * Returns: (transfer full): a #GstMemory at @idx. Use gst_memory_unref () after usage. + * If @length is -1, all memory starting from @idx is merged. + * + * Returns: (transfer full): a #GstMemory that contains the merged data of @length + * blocks starting at @idx. Use gst_memory_unref () after usage. */ GstMemory * -gst_buffer_get_memory (GstBuffer * buffer, gint idx) +gst_buffer_get_memory_range (GstBuffer * buffer, guint idx, gint length) { - GstMemory *mem; + guint len; + + GST_DEBUG ("idx %u, length %d", idx, length); g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL); - g_return_val_if_fail (idx == -1 || - (idx >= 0 && idx <= GST_BUFFER_MEM_LEN (buffer)), NULL); + len = GST_BUFFER_MEM_LEN (buffer); + g_return_val_if_fail ((length == -1 && idx < len) || + (length > 0 && length + idx <= len), NULL); - if (idx == -1) { - gboolean merged; - mem = _get_merged_memory (buffer, &merged); - } else if ((mem = GST_BUFFER_MEM_PTR (buffer, idx))) { - gst_memory_ref (mem); - } - return mem; + if (length == -1) + length = len - idx; + + return _get_merged_memory (buffer, idx, length); } /** - * gst_buffer_replace_memory: + * gst_buffer_replace_memory_range: * @buffer: a #GstBuffer. * @idx: an index + * @length: a length should not be 0 * @mem: (transfer full): a #GstMemory * - * Replaces the memory block in @buffer at @idx with @mem. If @idx is -1, all - * memory will be removed and replaced with @mem. + * Replaces @length memory blocks in @buffer starting at @idx with @mem. + * + * If @length is -1, all memory starting from @idx will be removed and + * replaced with @mem. * * @buffer should be writable. */ void -gst_buffer_replace_memory (GstBuffer * buffer, gint idx, GstMemory * mem) +gst_buffer_replace_memory_range (GstBuffer * buffer, guint idx, gint length, + GstMemory * mem) { + guint len; + g_return_if_fail (GST_IS_BUFFER (buffer)); g_return_if_fail (gst_buffer_is_writable (buffer)); - g_return_if_fail (idx == -1 || - (idx >= 0 && idx < GST_BUFFER_MEM_LEN (buffer))); + len = GST_BUFFER_MEM_LEN (buffer); + g_return_if_fail ((length == -1 && idx < len) || (length > 0 + && length + idx <= len)); - if (idx == -1) { - _replace_all_memory (buffer, mem); - } else { - GstMemory *old; + if (length == -1) + length = len - idx; - if ((old = GST_BUFFER_MEM_PTR (buffer, idx))) - gst_memory_unref (old); - GST_BUFFER_MEM_PTR (buffer, idx) = mem; - } + _replace_memory (buffer, len, idx, length, mem); } /** @@ -837,7 +842,7 @@ gst_buffer_replace_memory (GstBuffer * buffer, gint idx, GstMemory * mem) * @idx: an index * @length: a length * - * Remove @len memory blocks in @buffer starting from @idx. + * Remove @length memory blocks in @buffer starting from @idx. * * @length can be -1, in which case all memory starting from @idx is removed. */ @@ -850,7 +855,7 @@ gst_buffer_remove_memory_range (GstBuffer * buffer, guint idx, gint length) g_return_if_fail (gst_buffer_is_writable (buffer)); len = GST_BUFFER_MEM_LEN (buffer); - g_return_if_fail ((length == -1 && idx < len) || length + idx < len); + g_return_if_fail ((length == -1 && idx < len) || length + idx <= len); if (length == -1) length = len - idx; @@ -1014,12 +1019,16 @@ gst_buffer_resize (GstBuffer * buffer, gssize offset, gssize size) } /** - * gst_buffer_map: + * gst_buffer_map_range: * @buffer: a #GstBuffer. + * @idx: an index + * @length: a length * @info: (out): info about the mapping * @flags: flags for the mapping * - * This function fills @info with a pointer to the merged memory in @buffer. + * This function fills @info with the #GstMapInfo of @length merged memory blocks + * starting at @idx in @buffer. When @length is -1, all memory blocks starting + * from @idx are merged and mapped. * @flags describe the desired access of the memory. When @flags is * #GST_MAP_WRITE, @buffer should be writable (as returned from * gst_buffer_is_writable()). @@ -1028,22 +1037,26 @@ gst_buffer_resize (GstBuffer * buffer, gssize offset, gssize size) * automatically be created and returned. The readonly copy of the buffer memory * will then also be replaced with this writable copy. * - * When the buffer contains multiple memory blocks, the returned pointer will be - * a concatenation of the memory blocks. - * * The memory in @info should be unmapped with gst_buffer_unmap() after usage. * * Returns: (transfer full): %TRUE if the map succeeded and @info contains valid * data. */ gboolean -gst_buffer_map (GstBuffer * buffer, GstMapInfo * info, GstMapFlags flags) +gst_buffer_map_range (GstBuffer * buffer, guint idx, gint length, + GstMapInfo * info, GstMapFlags flags) { GstMemory *mem, *nmem; - gboolean write, writable, merged; + gboolean write, writable; + gsize len; g_return_val_if_fail (GST_IS_BUFFER (buffer), FALSE); g_return_val_if_fail (info != NULL, FALSE); + len = GST_BUFFER_MEM_LEN (buffer); + if (len == 0) + goto no_memory; + g_return_val_if_fail ((length == -1 && idx < len) || (length > 0 + && length + idx <= len), FALSE); write = (flags & GST_MAP_WRITE) != 0; writable = gst_buffer_is_writable (buffer); @@ -1052,7 +1065,10 @@ gst_buffer_map (GstBuffer * buffer, GstMapInfo * info, GstMapFlags flags) if (G_UNLIKELY (write && !writable)) goto not_writable; - mem = _get_merged_memory (buffer, &merged); + if (length == -1) + length = len - idx; + + mem = _get_merged_memory (buffer, idx, length); if (G_UNLIKELY (mem == NULL)) goto no_memory; @@ -1063,12 +1079,12 @@ gst_buffer_map (GstBuffer * buffer, GstMapInfo * info, GstMapFlags flags) /* if we merged or when the map returned a different memory, we try to replace * the memory in the buffer */ - if (G_UNLIKELY (merged || nmem != mem)) { + if (G_UNLIKELY (length > 1 || nmem != mem)) { /* if the buffer is writable, replace the memory */ if (writable) { - _replace_all_memory (buffer, gst_memory_ref (nmem)); + _replace_memory (buffer, len, idx, length, gst_memory_ref (nmem)); } else { - if (GST_BUFFER_MEM_LEN (buffer) > 1) { + if (len > 1) { GST_CAT_DEBUG (GST_CAT_PERFORMANCE, "temporary mapping for memory %p in buffer %p", nmem, buffer); } diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h index 107cef6833..ea18e80c7a 100644 --- a/gst/gstbuffer.h +++ b/gst/gstbuffer.h @@ -266,15 +266,18 @@ GstBuffer * gst_buffer_new_wrapped_full (GstMemoryFlags flags, gpointer data, GstBuffer * gst_buffer_new_wrapped (gpointer data, gsize size); /* memory blocks */ -guint gst_buffer_n_memory (GstBuffer *buffer); -void gst_buffer_take_memory (GstBuffer *buffer, gint idx, GstMemory *mem); -void gst_buffer_replace_memory (GstBuffer *buffer, gint idx, GstMemory *mem); -GstMemory * gst_buffer_get_memory (GstBuffer *buffer, gint idx); -void gst_buffer_remove_memory_range (GstBuffer *buffer, guint idx, gint length); +guint gst_buffer_n_memory (GstBuffer *buffer); +void gst_buffer_insert_memory (GstBuffer *buffer, gint idx, GstMemory *mem); +void gst_buffer_replace_memory_range (GstBuffer *buffer, guint idx, gint length, GstMemory *mem); +GstMemory * gst_buffer_get_memory_range (GstBuffer *buffer, guint idx, gint length); +void gst_buffer_remove_memory_range (GstBuffer *buffer, guint idx, gint length); -#define gst_buffer_append_memory(b,m) gst_buffer_take_memory ((b), -1, (m)) -#define gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory ((b), -1, (m)) -#define gst_buffer_get_merged_memory(b) gst_buffer_get_memory ((b), -1) +#define gst_buffer_prepend_memory(b,m) gst_buffer_insert_memory ((b), 0, (m)) +#define gst_buffer_append_memory(b,m) gst_buffer_insert_memory ((b), -1, (m)) +#define gst_buffer_replace_memory(b,i,m) gst_buffer_replace_memory_range ((b), (i), 1, (m)) +#define gst_buffer_replace_all_memory(b,m) gst_buffer_replace_memory ((b), 0, -1, (m)) +#define gst_buffer_get_memory(b,i) gst_buffer_get_memory_range ((b), (i), 1) +#define gst_buffer_get_all_memory(b) gst_buffer_get_memory_range ((b), 0, -1) /** * gst_buffer_remove_memory: * @b: a #GstBuffer. @@ -314,9 +317,13 @@ void gst_buffer_resize (GstBuffer *buffer, gssize offset, gs */ #define gst_buffer_set_size(b,s) gst_buffer_resize ((b), 0, (s)) -gboolean gst_buffer_map (GstBuffer *buffer, GstMapInfo *info, GstMapFlags flags); +gboolean gst_buffer_map_range (GstBuffer *buffer, guint idx, gint length, + GstMapInfo *info, GstMapFlags flags); +#define gst_buffer_map(b,i,f) gst_buffer_map_range ((b), 0, -1, (i), (f)) + void gst_buffer_unmap (GstBuffer *buffer, GstMapInfo *info); + /* refcounting */ /** * gst_buffer_ref: diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c index 99bb97582d..382611ca4d 100644 --- a/libs/gst/base/gstadapter.c +++ b/libs/gst/base/gstadapter.c @@ -769,7 +769,7 @@ gst_adapter_take_buffer (GstAdapter * adapter, gsize nbytes) data = gst_adapter_take_internal (adapter, nbytes); buffer = gst_buffer_new (); - gst_buffer_take_memory (buffer, -1, + gst_buffer_append_memory (buffer, gst_memory_new_wrapped (0, data, nbytes, 0, nbytes, data, g_free)); done: diff --git a/libs/gst/base/gstbytewriter.c b/libs/gst/base/gstbytewriter.c index e6f423f57a..fc41bbc624 100644 --- a/libs/gst/base/gstbytewriter.c +++ b/libs/gst/base/gstbytewriter.c @@ -260,7 +260,7 @@ gst_byte_writer_reset_and_get_buffer (GstByteWriter * writer) buffer = gst_buffer_new (); if (data != NULL) { - gst_buffer_take_memory (buffer, -1, + gst_buffer_append_memory (buffer, gst_memory_new_wrapped (0, data, size, 0, size, data, g_free)); } diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c index 47a42bd395..04bb9ad1eb 100644 --- a/plugins/elements/gstfakesrc.c +++ b/plugins/elements/gstfakesrc.c @@ -659,7 +659,7 @@ gst_fake_src_alloc_buffer (GstFakeSrc * src, guint size) if (do_prepare) gst_fake_src_prepare_buffer (src, data, size); - gst_buffer_take_memory (buf, -1, + gst_buffer_append_memory (buf, gst_memory_new_wrapped (0, data, size, 0, size, data, g_free)); } diff --git a/tests/check/gst/gstbuffer.c b/tests/check/gst/gstbuffer.c index 190825e24d..5e3496c2da 100644 --- a/tests/check/gst/gstbuffer.c +++ b/tests/check/gst/gstbuffer.c @@ -191,7 +191,7 @@ create_read_only_buffer (void) buf = gst_buffer_new (); /* assign some read-only data to the new buffer */ - gst_buffer_take_memory (buf, -1, + gst_buffer_insert_memory (buf, -1, gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, (gpointer) ro_memory, sizeof (ro_memory), 0, sizeof (ro_memory), NULL, NULL)); @@ -420,7 +420,7 @@ GST_START_TEST (test_size) fail_unless (maxsize == maxalloc2); /* append */ - gst_buffer_take_memory (buf, -1, mem); + gst_buffer_insert_memory (buf, -1, mem); size = gst_buffer_get_sizes (buf, &offset, &maxalloc); fail_unless (size == 130); @@ -433,7 +433,7 @@ GST_START_TEST (test_size) mem = gst_allocator_alloc (NULL, 100, NULL); size = gst_memory_get_sizes (mem, &offset, &maxalloc3); gst_memory_resize (mem, 0, 0); - gst_buffer_take_memory (buf, -1, mem); + gst_buffer_insert_memory (buf, -1, mem); size = gst_buffer_get_sizes (buf, &offset, &maxalloc); fail_unless (size == 130); @@ -446,7 +446,7 @@ GST_START_TEST (test_size) mem = gst_allocator_alloc (NULL, 100, NULL); size = gst_memory_get_sizes (mem, &offset, &maxalloc4); gst_memory_resize (mem, 0, 0); - gst_buffer_take_memory (buf, 0, mem); + gst_buffer_insert_memory (buf, 0, mem); size = gst_buffer_get_sizes (buf, &offset, &maxalloc); fail_unless (size == 130); @@ -566,8 +566,8 @@ GST_START_TEST (test_map) gsize size, offset; buf = gst_buffer_new (); - gst_buffer_take_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL)); - gst_buffer_take_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL)); + gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL)); + gst_buffer_insert_memory (buf, -1, gst_allocator_alloc (NULL, 50, NULL)); size = gst_buffer_get_sizes (buf, &offset, &maxalloc); fail_unless (size == 100); diff --git a/tests/check/libs/bitreader.c b/tests/check/libs/bitreader.c index 0cedecf2b6..1cdb55d56a 100644 --- a/tests/check/libs/bitreader.c +++ b/tests/check/libs/bitreader.c @@ -48,7 +48,7 @@ GST_START_TEST (test_initialization) guint8 x = 0; GstMapInfo info; - gst_buffer_take_memory (buffer, -1, + gst_buffer_insert_memory (buffer, -1, gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, data, 4, 0, 4, NULL, NULL)); diff --git a/tests/check/libs/bytereader.c b/tests/check/libs/bytereader.c index ec5fda90bd..0aa41c5f90 100644 --- a/tests/check/libs/bytereader.c +++ b/tests/check/libs/bytereader.c @@ -48,7 +48,7 @@ GST_START_TEST (test_initialization) guint8 x = 0; GstMapInfo info; - gst_buffer_take_memory (buffer, -1, + gst_buffer_insert_memory (buffer, -1, gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, data, 4, 0, 4, NULL, NULL)); diff --git a/tests/check/libs/typefindhelper.c b/tests/check/libs/typefindhelper.c index 925448d657..346539bcc0 100644 --- a/tests/check/libs/typefindhelper.c +++ b/tests/check/libs/typefindhelper.c @@ -53,7 +53,7 @@ GST_START_TEST (test_buffer_range) buf = gst_buffer_new (); fail_unless (buf != NULL); - gst_buffer_take_memory (buf, -1, + gst_buffer_insert_memory (buf, -1, gst_memory_new_wrapped (GST_MEMORY_FLAG_READONLY, (gpointer) vorbisid, 30, 0, 30, NULL, NULL)); diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def index 9a970677ef..5e7a2bffc3 100644 --- a/win32/common/libgstreamer.def +++ b/win32/common/libgstreamer.def @@ -98,10 +98,11 @@ EXPORTS gst_buffer_fill gst_buffer_flags_get_type gst_buffer_foreach_meta - gst_buffer_get_memory + gst_buffer_get_memory_range gst_buffer_get_meta gst_buffer_get_sizes gst_buffer_get_type + gst_buffer_insert_memory gst_buffer_iterate_meta gst_buffer_list_foreach gst_buffer_list_get @@ -111,7 +112,7 @@ EXPORTS gst_buffer_list_new gst_buffer_list_new_sized gst_buffer_list_remove - gst_buffer_map + gst_buffer_map_range gst_buffer_memcmp gst_buffer_memset gst_buffer_n_memory @@ -140,9 +141,8 @@ EXPORTS gst_buffer_pool_set_config gst_buffer_remove_memory_range gst_buffer_remove_meta - gst_buffer_replace_memory + gst_buffer_replace_memory_range gst_buffer_resize - gst_buffer_take_memory gst_buffer_unmap gst_buffering_mode_get_type gst_bus_add_signal_watch