gi-gstbase-1.0.2: GStreamerBase bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.GstBase.Structs.FlowCombiner

Contents

Description

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.

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 immediatelly from the gst_flow_combiner_update_flow() function.

Synopsis

Exported types

newtype FlowCombiner Source

Instances

BoxedObject FlowCombiner Source 
((~) * signature (a -> FlowReturn -> m FlowReturn), MonadIO m, PadK a) => MethodInfo * FlowCombinerUpdatePadFlowMethodInfo FlowCombiner signature Source 
((~) * signature (FlowReturn -> m FlowReturn), MonadIO m) => MethodInfo * FlowCombinerUpdateFlowMethodInfo FlowCombiner signature Source 
((~) * signature (m ()), MonadIO m) => MethodInfo * FlowCombinerResetMethodInfo FlowCombiner signature Source 
((~) * signature (a -> m ()), MonadIO m, PadK a) => MethodInfo * FlowCombinerRemovePadMethodInfo FlowCombiner signature Source 
((~) * signature (m ()), MonadIO m) => MethodInfo * FlowCombinerFreeMethodInfo FlowCombiner signature Source 
((~) * signature (m ()), MonadIO m) => MethodInfo * FlowCombinerClearMethodInfo FlowCombiner signature Source 
((~) * signature (a -> m ()), MonadIO m, PadK a) => MethodInfo * FlowCombinerAddPadMethodInfo FlowCombiner signature Source 
((~) * info (ResolveFlowCombinerMethod t FlowCombiner), MethodInfo * info FlowCombiner p) => IsLabelProxy t (FlowCombiner -> p) Source 
type AttributeList FlowCombiner Source 

Methods

flowCombinerAddPad

data FlowCombinerAddPadMethodInfo Source

Instances

((~) * signature (a -> m ()), MonadIO m, PadK a) => MethodInfo * FlowCombinerAddPadMethodInfo FlowCombiner signature Source 

flowCombinerClear

data FlowCombinerClearMethodInfo Source

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * FlowCombinerClearMethodInfo FlowCombiner signature Source 

flowCombinerFree

data FlowCombinerFreeMethodInfo Source

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * FlowCombinerFreeMethodInfo FlowCombiner signature Source 

flowCombinerNew

flowCombinerRemovePad

data FlowCombinerRemovePadMethodInfo Source

Instances

((~) * signature (a -> m ()), MonadIO m, PadK a) => MethodInfo * FlowCombinerRemovePadMethodInfo FlowCombiner signature Source 

flowCombinerReset

data FlowCombinerResetMethodInfo Source

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * FlowCombinerResetMethodInfo FlowCombiner signature Source 

flowCombinerUpdateFlow

flowCombinerUpdatePadFlow