* @mini_object: the parent structure
*
* Opaque list of grouped buffers.
+ *
+ * Since: 0.10.24
*/
struct _GstBufferList
{
* GstBufferListIterator:
*
* Opaque iterator for a #GstBufferList.
+ *
+ * Since: 0.10.24
*/
struct _GstBufferListIterator
{
* the returned #GstBufferList.
*
* Returns: the new #GstBufferList. gst_buffer_list_unref() after usage.
+ *
+ * Since: 0.10.24
*/
GstBufferList *
gst_buffer_list_new (void)
* Returns the number of groups in @list.
*
* Returns: the number of groups in the buffer list
+ *
+ * Since: 0.10.24
*/
guint
gst_buffer_list_n_groups (GstBufferList * list)
* @func can modify the passed buffer pointer or its contents. The return value
* of @func define if this function returns or if the remaining buffers in a
* group should be skipped.
+ *
+ * Since: 0.10.24
*/
void
gst_buffer_list_foreach (GstBufferList * list, GstBufferListFunc func,
*
* Returns: the buffer at @idx in @group or NULL when there is no buffer. The
* buffer remains valid as long as @list is valid.
+ *
+ * Since: 0.10.24
*/
GstBuffer *
gst_buffer_list_get (GstBufferList * list, guint group, guint idx)
*
* Returns: a new #GstBufferListIterator of the buffers in @list.
* gst_buffer_list_iterator_free() after usage
+ *
+ * Since: 0.10.24
*/
GstBufferListIterator *
gst_buffer_list_iterate (GstBufferList * list)
* @it: the #GstBufferListIterator to free
*
* Free the iterator.
+ *
+ * Since: 0.10.24
*/
void
gst_buffer_list_iterator_free (GstBufferListIterator * it)
* the state of the iterator @it.
*
* Returns: the number of buffers left to iterate in the current group
+ *
+ * Since: 0.10.24
*/
guint
gst_buffer_list_iterator_n_buffers (const GstBufferListIterator * it)
* will return the buffer after the inserted buffer, if any.
*
* This function takes ownership of @buffer.
+ *
+ * Since: 0.10.24
*/
void
gst_buffer_list_iterator_add (GstBufferListIterator * it, GstBuffer * buffer)
* gst_buffer_list_iterator_next_group(). A subsequent call to
* gst_buffer_list_iterator_next_group() will advance the iterator to the group
* after the inserted group, if any.
+ *
+ * Since: 0.10.24
*/
void
gst_buffer_list_iterator_add_group (GstBufferListIterator * it)
* unref it.
*
* Returns: the next buffer in the current group of the buffer list, or NULL
+ *
+ * Since: 0.10.24
*/
GstBuffer *
gst_buffer_list_iterator_next (GstBufferListIterator * it)
*
* Returns: TRUE if the iterator could be advanced to the next group, FALSE if
* the iterator was already at the last group
+ *
+ * Since: 0.10.24
*/
gboolean
gst_buffer_list_iterator_next_group (GstBufferListIterator * it)
* only be called once per call to gst_buffer_list_iterator_next().
*
* The removed buffer is unreffed.
+ *
+ * Since: 0.10.24
*/
void
gst_buffer_list_iterator_remove (GstBufferListIterator * it)
* This function unrefs the replaced buffer if it has not been stolen with
* gst_buffer_list_iterator_steal() and takes ownership of @buffer (i.e. the
* refcount of @buffer is not increased).
+ *
+ * Since: 0.10.24
*/
void
gst_buffer_list_iterator_take (GstBufferListIterator * it, GstBuffer * buffer)
* modifying the refcount of the buffer.
*
* Returns: the last buffer returned by gst_buffer_list_iterator_next()
+ *
+ * Since: 0.10.24
*/
GstBuffer *
gst_buffer_list_iterator_steal (GstBufferListIterator * it)
* See #GstBufferListDoFunction for more details.
*
* Returns: the return value from @do_func
+ *
+ * Since: 0.10.24
*/
GstBuffer *
gst_buffer_list_iterator_do (GstBufferListIterator * it,
* the state of the iterator @it or the list.
*
* Returns: a new #GstBuffer, gst_buffer_unref() after usage, or NULL
+ *
+ * Since: 0.10.24
*/
GstBuffer *
gst_buffer_list_iterator_merge_group (const GstBufferListIterator * it)
*
* Returns: the buffer to replace @buffer in the list, or NULL to remove @buffer
* from the list
+ *
+ * Since: 0.10.24
*/
typedef GstBuffer* (*GstBufferListDoFunction) (GstBuffer * buffer, gpointer user_data);
* @GST_BUFFER_LIST_END: End iteration
*
* The result of the #GstBufferListFunc.
+ *
+ * Since: 0.10.24
*/
typedef enum {
GST_BUFFER_LIST_CONTINUE,
* removing or modifying.
*
* Returns: a #GstBufferListItem
+ *
+ * Since: 0.10.24
*/
typedef GstBufferListItem (*GstBufferListFunc) (GstBuffer **buffer, guint group, guint idx,
gpointer user_data);
* the number of memcpy operations in a pipeline.
*
* Returns: @list
+ *
+ * Since: 0.10.24
*/
#ifdef _FOOL_GTK_DOC_
G_INLINE_FUNC GstBufferList * gst_buffer_list_ref (GstBufferList * list);
*
* Decreases the refcount of the buffer list. If the refcount reaches 0, the
* buffer list will be freed.
+ *
+ * Since: 0.10.24
*/
#ifdef _FOOL_GTK_DOC_
G_INLINE_FUNC void gst_buffer_list_unref (GstBufferList * list);
* refcount of buffers pointed to will be increased by one.
*
* Returns: a new copy of @list.
+ *
+ * Since: 0.10.24
*/
#ifdef _FOOL_GTK_DOC_
G_INLINE_FUNC GstBufferList * gst_buffer_list_copy (const GstBufferList * list);
* @list: a #GstBufferList
*
* Tests if you can safely add buffers and groups into a buffer list.
+ *
+ * Since: 0.10.24
*/
#define gst_buffer_list_is_writable(list) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (list))
* Makes a writable buffer list from the given buffer list. If the source buffer
* list is already writable, this will simply return the same buffer list. A
* copy will otherwise be made using gst_buffer_list_copy().
+ *
+ * Since: 0.10.24
*/
#define gst_buffer_list_make_writable(list) GST_BUFFER_LIST_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (list)))