Pipelines
Conceptually, a pipeline is a container that consists of many elements and links between them. Like an element, every pipeline has a playback state (and uses the same callbacks to handle transitions between them).
Implementation-wise, it's an Erlang process responsible for starting elements (usually referred to as children). It also manages their playback state to match the one set for the pipeline.
communication-with-children
Communication with children
During the application execution, elements may want to signal some events. For that purpose, they send the
Notification
to their watcher, which in most cases is a pipeline.
A pipeline can also be used as a gateway to an element - as elements' pids aren't available globally pipeline can route messages to children using names defined at pipeline creation.
defining-pipelines
Defining pipelines
Pipelines are Elixir modules that use Membrane.Pipeline
and implement callbacks required by Membrane.Pipeline
behaviour.