GStreamer

 view release on metacpan or  search on metacpan

xs/GstBuffer.xs  view on Meta::CPAN

	RETVAL = GST_BUFFER_OFFSET_END (buffer);
    OUTPUT:
	RETVAL

# --------------------------------------------------------------------------- #

# GstBuffer* gst_buffer_new (void);
# GstBuffer* gst_buffer_new_and_alloc (guint size);
GstBuffer_noinc *
gst_buffer_new (class)
    C_ARGS:
	/* void */

# #define gst_buffer_set_data(buf, data, size)
void
gst_buffer_set_data (buf, data)
	GstBuffer *buf
	SV *data
    PREINIT:
	STRLEN length;
	gchar *raw_data;
    CODE:
	if (buf->malloc_data) {
#if GST_CHECK_VERSION (0, 10, 22)
		if (buf->free_func)
			buf->free_func (buf->malloc_data);
		else
			g_free (buf->malloc_data);
#else
		g_free (buf->malloc_data);
#endif
	}
	raw_data = SvPV (data, length);
	buf->malloc_data = (guchar*) g_strndup (raw_data, length);
#if GST_CHECK_VERSION (0, 10, 22)
	buf->free_func = g_free;
#endif
	gst_buffer_set_data (buf,
	                     buf->malloc_data,
	                     length);

GstCaps_own_ornull * gst_buffer_get_caps (GstBuffer *buffer);

void gst_buffer_set_caps (GstBuffer *buffer, GstCaps *caps);

GstBuffer_noinc * gst_buffer_create_sub (GstBuffer *parent, guint offset, guint size);

gboolean gst_buffer_is_span_fast (GstBuffer *buf1, GstBuffer *buf2);

GstBuffer_noinc * gst_buffer_span (GstBuffer *buf1, guint32 offset, GstBuffer *buf2, guint32 len);

void gst_buffer_stamp (GstBuffer *dest, const GstBuffer *src);

# GstBuffer* gst_buffer_join (GstBuffer *buf1, GstBuffer *buf2);
GstBuffer_noinc *
gst_buffer_join (buf1, buf2)
	GstBuffer *buf1
	GstBuffer *buf2
    C_ARGS:
	/* gst_buffer_join unrefs the old buffers, but our SVs still point to
	   them, so we need to keep them alive. */
	gst_buffer_ref (buf1), gst_buffer_ref (buf2)

GstBuffer_noinc * gst_buffer_merge (GstBuffer *buf1, GstBuffer *buf2);



( run in 2.345 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )