Membrane.Filter behaviour (Membrane Core v0.7.0) View Source
Module defining behaviour for filters - elements processing data.
Behaviours for filters are specified, besides this place, in modules
Membrane.Element.Base
,
Membrane.Element.WithOutputPads
,
and Membrane.Element.WithInputPads
.
Filters can have both input and output pads. Job of a usual filter is to
receive some data on a input pad, process the data and send it through the
output pad. If these pads work in pull mode, which is the most common case,
then filter is also responsible for receiving demands on the output pad and
requesting them on the input pad (for more details, see
Membrane.Element.WithOutputPads.handle_demand/5
callback).
Filters, like all elements, can of course have multiple pads if needed to
provide more complex solutions.
Link to this section Summary
Functions
Brings all the stuff necessary to implement a filter element.
Callbacks
Callback that is to process buffers. In contrast to handle_process_list/4
, it is
passed only a single buffer.
Callback that is to process buffers.
Link to this section Functions
Brings all the stuff necessary to implement a filter element.
Options:
:bring_pad?
- if true (default) requires and aliasesMembrane.Pad
Link to this section Callbacks
Specs
handle_process( pad :: Membrane.Pad.ref_t(), buffer :: Membrane.Buffer.t(), context :: Membrane.Element.CallbackContext.Process.t(), state :: Membrane.Element.state_t() ) :: Membrane.Element.Base.callback_return_t()
Callback that is to process buffers. In contrast to handle_process_list/4
, it is
passed only a single buffer.
Called by default implementation of handle_process_list/4
.
Specs
handle_process_list( pad :: Membrane.Pad.ref_t(), buffers :: [Membrane.Buffer.t()], context :: Membrane.Element.CallbackContext.Process.t(), state :: Membrane.Element.state_t() ) :: Membrane.Element.Base.callback_return_t()
Callback that is to process buffers.
By default calls handle_process/4
for each buffer.
For pads in pull mode it is called when buffers have been demanded (by returning
:demand
action from any callback).
For pads in push mode it is invoked when buffers arrive.