The cookie; the value of the master_cookie when this iterator was created.
The function to copy the iterator
The function to call when the iterator is freed
The function to be called for each item retrieved
The lock protecting the data structure and the cookie.
A pointer to the master cookie.
The function to get the next item in the iterator
The iterator that is currently pushed with gst_iterator_push()
The function to call when a resync is needed.
the size of the iterator
The type of the object that this iterator will return
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.
When this iterator is freed, it
will also be freed.
the compare function to select elements
user data passed to the compare function
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.
The iterator will not be freed.
This function will return %FALSE if an error happened to the iterator or if the element wasn't found.
the compare function to use
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
.
This procedure can be used (and is used internally) to implement the gst_iterator_foreach() and gst_iterator_find_custom() operations.
The fold will proceed as long as func
returns %TRUE. When the iterator has no
more arguments, %GST_ITERATOR_DONE will be returned. If func
returns %FALSE,
the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
appropriate.
The iterator will not be freed.
the fold function
the seed value passed to the fold function
Iterate over all element of it
and call the given function func
for
each element.
the function to call for each element.
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.
This function is mainly used by objects implementing the iterator next function to recurse into substructures.
When gst_iterator_resync() is called on it,
other
will automatically be
popped.
MT safe.
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.
#GType of the passed object
object that this iterator should return
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.
Note that if calling a GstIterator function results in your code receiving a refcounted object (with, say, g_value_get_object()), the refcount for that object will not be increased. Your code is responsible for taking a reference if it wants to continue using it later.
The basic use pattern of an iterator is as follows: