Sets our main struct and passes it to the parent class.
Creates a new #GstFlowCombiner, use gst_flow_combiner_free() to free it.
Adds a new #GstPad to the #GstFlowCombiner.
Removes all pads from a #GstFlowCombiner and resets it to its initial state.
Frees a #GstFlowCombiner struct and all its internal data.
Get the main Gtk struct
the main Gtk struct as a void*
Increments the reference count on the #GstFlowCombiner.
Removes a #GstPad from the #GstFlowCombiner.
Reset flow combiner and all pads to their initial state without removing pads.
Decrements the reference count on the #GstFlowCombiner.
Computes the combined flow return for the pads in it.
Sets the provided pad's last flow return to provided value and computes the combined flow return for the pads in it.
the main Gtk struct
Utility struct to help handling #GstFlowReturn combination. Useful for #GstElement<!-- -->s that have multiple source pads and need to combine the different #GstFlowReturn for those pads.
#GstFlowCombiner works by using the last #GstFlowReturn for all #GstPad it has in its list and computes the combined return value and provides it to the caller.
To add a new pad to the #GstFlowCombiner use gst_flow_combiner_add_pad(). The new #GstPad is stored with a default value of %GST_FLOW_OK.
In case you want a #GstPad to be removed, use gst_flow_combiner_remove_pad().
Please be aware that this struct isn't thread safe as its designed to be used by demuxers, those usually will have a single thread operating it.
These functions will take refs on the passed #GstPad<!-- -->s.
Aside from reducing the user's code size, the main advantage of using this helper struct is to follow the standard rules for #GstFlowReturn combination. These rules are:
* %GST_FLOW_EOS: only if all returns are EOS too * %GST_FLOW_NOT_LINKED: only if all returns are NOT_LINKED too * %GST_FLOW_ERROR or below: if at least one returns an error return * %GST_FLOW_NOT_NEGOTIATED: if at least one returns a not-negotiated return * %GST_FLOW_FLUSHING: if at least one returns flushing * %GST_FLOW_OK: otherwise
%GST_FLOW_ERROR or below, GST_FLOW_NOT_NEGOTIATED and GST_FLOW_FLUSHING are returned immediately from the gst_flow_combiner_update_flow() function.