gst_buffer_new
gst_buffer_new_allocate
gst_buffer_new_wrapped
+gst_buffer_new_wrapped_bytes
gst_buffer_new_wrapped_full
gst_buffer_ref
}
/**
+ * gst_buffer_new_wrapped_bytes:
+ * @bytes: (transfer none): a #GBytes to wrap
+ *
+ * Creates a new #GstBuffer that wraps the given @bytes. The data inside
+ * @bytes cannot be %NULL and the resulting buffer will be marked as read only.
+ *
+ * MT safe.
+ *
+ * Returns: (transfer full): a new #GstBuffer wrapping @bytes
+ *
+ * Since: 1.16
+ */
+GstBuffer *
+gst_buffer_new_wrapped_bytes (GBytes * bytes)
+{
+ guint8 *bytes_data;
+ gsize size;
+
+ g_return_val_if_fail (bytes != NULL, NULL);
+ bytes_data = (guint8 *) g_bytes_get_data (bytes, &size);
+ g_return_val_if_fail (bytes_data != NULL, NULL);
+
+ return gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY, bytes_data,
+ size, 0, size, g_bytes_ref (bytes), (GDestroyNotify) g_bytes_unref);
+}
+
+/**
* gst_buffer_n_memory:
* @buffer: a #GstBuffer.
*
GDestroyNotify notify);
GST_API
GstBuffer * gst_buffer_new_wrapped (gpointer data, gsize size);
+GST_API
+GstBuffer * gst_buffer_new_wrapped_bytes (GBytes * bytes);
/* memory blocks */
GST_END_TEST;
+GST_START_TEST (test_wrapped_bytes)
+{
+ GBytes *bytes = g_bytes_new_static (ro_memory, sizeof (ro_memory));
+ GstBuffer *buf;
+ GstMemory *mem;
+
+ buf = gst_buffer_new_wrapped_bytes (bytes);
+
+ /* the memory should not be writable */
+ mem = gst_buffer_peek_memory (buf, 0);
+ fail_unless (GST_MEMORY_IS_READONLY (mem));
+
+ gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
static Suite *
gst_buffer_suite (void)
{
tcase_add_test (tc_chain, test_fill);
tcase_add_test (tc_chain, test_parent_buffer_meta);
tcase_add_test (tc_chain, test_writable_memory);
+ tcase_add_test (tc_chain, test_wrapped_bytes);
return s;
}