diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2021-05-22 19:32:55 +0100 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-05-23 07:32:09 +0000 |
commit | 04fe2233f09a58deabd6b7d26182c81b1b6758c3 (patch) | |
tree | 9dec48f7b9dcb6ef0bcd958d9f3d2058a1926986 /gst | |
parent | caa608e5c0c5829f67a4fbe82e0abc28b24aa150 (diff) |
buffer: add gst_buffer_new_copy() convenience function
More convenient and discoverable variant of the fairly widely-used
gst_buffer_new_wrapped(g_memdup(data,size),size).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/826>
Diffstat (limited to 'gst')
-rw-r--r-- | gst/gstbuffer.c | 19 | ||||
-rw-r--r-- | gst/gstbuffer.h | 4 |
2 files changed, 23 insertions, 0 deletions
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 2d91d4e5e2..97b1b9fc31 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -1040,6 +1040,25 @@ gst_buffer_new_wrapped_bytes (GBytes * bytes) } /** + * gst_buffer_new_copy: + * @data: (array length=size) (element-type guint8) (transfer none): data to copy into new buffer + * @size: size of @data in bytes + * + * Creates a new buffer of size @size and fills it with a copy of @data. + * + * Returns: (transfer full): a new #GstBuffer + * + * Since: 1.20 + */ +GstBuffer * +gst_buffer_new_copy (gconstpointer data, gsize size) +{ + gpointer data2 = g_memdup (data, size); + + return gst_buffer_new_wrapped_full (0, data2, size, 0, size, data2, g_free); +} + +/** * gst_buffer_n_memory: * @buffer: a #GstBuffer. * diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h index 83eba10c84..0b9e77da57 100644 --- a/gst/gstbuffer.h +++ b/gst/gstbuffer.h @@ -314,9 +314,13 @@ GstBuffer * gst_buffer_new_wrapped_full (GstMemoryFlags flags, gpointer data, GDestroyNotify notify); GST_API GstBuffer * gst_buffer_new_wrapped (gpointer data, gsize size); + GST_API GstBuffer * gst_buffer_new_wrapped_bytes (GBytes * bytes); +GST_API +GstBuffer * gst_buffer_new_copy (gconstpointer data, gsize size); + /* memory blocks */ GST_API |