handle_demand, go back to Membrane.Element.WithOutputPads module for more information.
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
If a source is unable to produce enough buffers, or a filter underestimated
returned demand, the
:redemand action should be used (see