View Source Membrane.Source (Membrane Core v1.1.0)

Module that should be used in sources - elements producing data. Declares appropriate behaviours implementation and provides default callbacks implementation.

Behaviours for sources are specified in modules Membrane.Element.Base and Membrane.Element.WithOutputPads.

Source elements can define only output pads. Job of a usual source is to produce some data (read from soundcard, download through HTTP, etc.) and send it through such pad. If the pad has the flow control set to :manual, then element is also responsible for receiving demands and send buffers only if they have previously been demanded (for more details, see Membrane.Element.WithOutputPads.handle_demand/5 callback). Sources, like all elements, can of course have multiple pads if needed to provide more complex solutions.

List of available callbacks

Below there is a list of all the callbacks available in a module, that implements Membrane.Source 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.Source behaviour:





Brings all the stuff necessary to implement a source element.


Link to this macro


View Source (macro)

Brings all the stuff necessary to implement a source element.


  • :bring_pad? - if true (default) requires and aliases Membrane.Pad