Membrane.Element.WithOutputPads.handle_demand
You're seeing just the callback
handle_demand
, go back to Membrane.Element.WithOutputPads module for more information.
Specs
handle_demand( pad :: Membrane.Pad.ref_t(), size :: non_neg_integer(), unit :: Membrane.Buffer.Metric.unit_t(), context :: Membrane.Element.CallbackContext.Demand.t(), state :: Membrane.Element.state_t() ) :: Membrane.Element.Base.callback_return_t()
Callback called when buffers should be emitted by a source or filter.
It is called only for output pads in the pull mode, as in their case demand is triggered by the input pad of the subsequent element.
In sources, appropriate amount of data should be sent here.
In filters, this callback should usually return :demand
action with
size sufficient for supplying incoming demand. This will result in calling
Membrane.Filter.handle_process_list/4
, which is to supply
the demand.
If a source is unable to produce enough buffers, or a filter underestimated
returned demand, the :redemand
action should be used (see
Membrane.Element.Action.redemand_t/0
).