View Source Membrane.Endpoint behaviour (Membrane Core v0.11.0)
Module defining behaviour for endpoints - elements consuming and producing data.
Behaviours for endpoints are specified, besides this place, in modules
Membrane.Element.Base
,
Membrane.Element.WithOutputPads
,
and Membrane.Element.WithInputPads
.
Endpoint can have both input and output pads. Job of usual endpoint is both, to
receive some data on such pad and consume it (write to a soundcard, send through
TCP etc.) and to produce some data (read from soundcard, download through HTTP,
etc.) and send it through such pad. If these pads work in pull mode, which is
the most common case, then endpoint 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).
Endpoints, like all elements, can of course have multiple pads if needed to
provide more complex solutions.
list-of-available-callbacks
List of available callbacks
Below there is a list of all the callbacks available in a module, that implements Membrane.Endpoint
behaviour.
We have put it for your convenience, as some of these callbacks aren't directly defined in that module and
their specification is available in different modules.
The callbacks available in Membrane.Endpoint
behaviour:
Membrane.Element.Base.__struct__/0
Membrane.Element.Base.__struct__/1
Membrane.Element.Base.handle_event/4
Membrane.Element.Base.handle_info/3
Membrane.Element.Base.handle_init/2
Membrane.Element.Base.handle_pad_added/3
Membrane.Element.Base.handle_pad_removed/3
Membrane.Element.Base.handle_parent_notification/3
Membrane.Element.Base.handle_playing/2
Membrane.Element.Base.handle_setup/2
Membrane.Element.Base.handle_terminate_request/2
Membrane.Element.Base.handle_tick/3
Link to this section Summary
Callbacks
Callback that is called when buffer should be written by the endpoint. 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 endpoint.
Functions
Brings all the stuff necessary to implement a endpoint element.
Link to this section Callbacks
@callback handle_write( 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 called when buffer should be written by the endpoint. In contrast
to handle_write_list/4
, it is passed only a single buffer.
Called by default implementation of handle_write_list/4
.
@callback handle_write_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 called when buffer should be written by the endpoint.
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.
Link to this section Functions
Brings all the stuff necessary to implement a endpoint element.
Options:
:bring_pad?
- if true (default) requires and aliasesMembrane.Pad