Membrane.Sink behaviour (Membrane Core v0.7.0) View Source
Module defining behaviour for sinks - elements consuming data.
Behaviours for sinks are specified, besides this place, in modules
Membrane.Element.Base
,
and Membrane.Element.WithInputPads
.
Sink elements can define only input pads. Job of a usual sink is to receive some
data on such pad and consume it (write to a soundcard, send through TCP etc.).
If the pad works in pull mode, which is the most common case, then element is
also responsible for requesting demands when it is able and willing to consume
data (for more details, see Membrane.Element.Action.demand_t/0
).
Sinks, 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 sink element.
Callbacks
Callback that is called when buffer should be written by the sink. In contrast
to handle_write_list/4
, it is passed only a single buffer.
Callback that is called when buffer should be written by the sink.
Link to this section Functions
Brings all the stuff necessary to implement a sink element.
Options:
:bring_pad?
- if true (default) requires and aliasesMembrane.Pad
Link to this section Callbacks
Specs
handle_write( pad :: Membrane.Pad.ref_t(), buffer :: Membrane.Buffer.t(), context :: Membrane.Element.CallbackContext.Write.t(), state :: Membrane.Element.state_t() ) :: Membrane.Element.Base.callback_return_t()
Callback that is called when buffer should be written by the sink. In contrast
to handle_write_list/4
, it is passed only a single buffer.
Called by default implementation of handle_write_list/4
.
Specs
handle_write_list( pad :: Membrane.Pad.ref_t(), buffers :: [Membrane.Buffer.t()], context :: Membrane.Element.CallbackContext.Write.t(), state :: Membrane.Element.state_t() ) :: Membrane.Element.Base.callback_return_t()
Callback that is called when buffer should be written by the sink.
By default calls handle_write/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.