Sets our main struct and passes it to the parent class.
Create a new iterator. This function is mainly used for objects implementing the next/resync/free function to iterate a data structure.
Create a new iterator designed for iterating @list.
This #GstIterator is a convenient iterator for the common case where a #GstIterator needs to be returned but only a single object has to be considered. This happens often for the #GstPadIterIntLinkFunction.
Copy the iterator and its state.
Create a new iterator from an existing iterator. The new iterator will only return those elements that match the given compare function @func. The first parameter that is passed to @func is the #GValue of the current iterator element and the second parameter is @user_data. @func should return 0 for elements that should be included in the filtered iterator.
Find the first element in @it that matches the compare function @func. @func should return 0 when the element is found. The first parameter to @func will be the current element of the iterator and the second parameter will be @user_data. The result will be stored in @elem if a result is found.
Folds @func over the elements of @iter. That is to say, @func will be called as @func (object, @ret, @user_data) for each object in @it. The normal use of this procedure is to accumulate the results of operating on the objects in @ret.
Iterate over all element of @it and call the given function @func for each element.
Free the iterator.
Get the main Gtk struct
the main Gtk struct as a void*
Get the next item from the iterator in @elem.
Pushes @other iterator onto @it. All calls performed on @it are forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is popped again and calls are handled by @it again.
Resync the iterator. this function is mostly called after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
the main Gtk struct
A GstIterator is used to retrieve multiple objects from another object in a threadsafe way.
Various GStreamer objects provide access to their internal structures using an iterator.
In general, whenever calling a GstIterator function results in your code receiving a refcounted object, the refcount for that object will have been increased. Your code is responsible for unreffing that object after use.
The basic use pattern of an iterator is as follows: |[ GstIterator *it = _get_iterator(object); done = FALSE; while (!done) { switch (gst_iterator_next (it, &item)) { case GST_ITERATOR_OK: ... use/change item here... g_value_reset (&item); break; case GST_ITERATOR_RESYNC: ...rollback changes to items... gst_iterator_resync (it); break; case GST_ITERATOR_ERROR: ...wrong parameters were given... done = TRUE; break; case GST_ITERATOR_DONE: done = TRUE; break; } } g_value_unset (&item); gst_iterator_free (it); ]|