*
* Since: 0.10.27
*/
+
+/**
+ * gst_byte_writer_put_buffer:
+ * @writer: #GstByteWriter instance
+ * @buffer: (transfer none): source #GstBuffer
+ * @offset: offset to copy from
+ * @size: total size to copy. If -1, all data is copied
+ *
+ * Writes @size bytes of @data to @writer.
+ *
+ * Returns: %TRUE if the data could be written
+ *
+ */
+gboolean
+gst_byte_writer_put_buffer (GstByteWriter * writer, GstBuffer * buffer,
+ gsize offset, gssize size)
+{
+ g_return_val_if_fail (writer != NULL, FALSE);
+ g_return_val_if_fail (size >= -1, FALSE);
+
+ if (size == -1) {
+ size = gst_buffer_get_size (buffer);
+
+ if (offset >= (gsize) size)
+ return TRUE;
+
+ size -= offset;
+ }
+
+ if (G_UNLIKELY (!_gst_byte_writer_ensure_free_space_inline (writer, size)))
+ return FALSE;
+
+ gst_buffer_extract (buffer, offset,
+ (guint8 *) & writer->parent.data[writer->parent.byte], size);
+ writer->parent.byte += size;
+ writer->parent.size = MAX (writer->parent.size, writer->parent.byte);
+
+ return TRUE;
+}
gboolean gst_byte_writer_put_string_utf8 (GstByteWriter *writer, const gchar *data);
gboolean gst_byte_writer_put_string_utf16 (GstByteWriter *writer, const guint16 *data);
gboolean gst_byte_writer_put_string_utf32 (GstByteWriter *writer, const guint32 *data);
+gboolean gst_byte_writer_put_buffer (GstByteWriter *writer, GstBuffer * buffer, gsize offset, gssize size);
/**
* gst_byte_writer_put_string: