-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);
-
-#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)
-/**
- * gst_buffer_remove_memory:
- * @b: a #GstBuffer.
- * @i: an index
- *
- * Remove the memory block in @b at @i.
- */
-#define gst_buffer_remove_memory(b,i) gst_buffer_remove_memory_range ((b), (i), 1)
-#define gst_buffer_remove_all_memory(b) gst_buffer_remove_memory_range ((b), 0, -1)
+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_peek_memory (GstBuffer *buffer, guint idx);
+GstMemory * gst_buffer_get_memory_range (GstBuffer *buffer, guint idx, gint length);
+void gst_buffer_remove_memory_range (GstBuffer *buffer, guint idx, gint length);
+
+void gst_buffer_prepend_memory (GstBuffer *buffer, GstMemory *mem);
+void gst_buffer_append_memory (GstBuffer *buffer, GstMemory *mem);
+void gst_buffer_replace_memory (GstBuffer *buffer, guint idx, GstMemory *mem);
+void gst_buffer_replace_all_memory (GstBuffer *buffer, GstMemory *mem);
+GstMemory * gst_buffer_get_memory (GstBuffer *buffer, guint idx);
+GstMemory * gst_buffer_get_all_memory (GstBuffer *buffer);
+void gst_buffer_remove_memory (GstBuffer *buffer, guint idx);
+void gst_buffer_remove_all_memory (GstBuffer *buffer);
+
+gboolean gst_buffer_find_memory (GstBuffer *buffer, gsize offset, gsize size,
+ guint *idx, guint *length, gsize *skip);
+
+gboolean gst_buffer_is_memory_range_writable (GstBuffer *buffer, guint idx, gint length);
+gboolean gst_buffer_is_all_memory_writable (GstBuffer *buffer);