View Source API Reference Membrane Core v1.1.0
Modules
Bins, similarly to pipelines, are containers for elements. However, at the same time, they can be placed and linked within pipelines. Although bin is a separate Membrane entity, it can be perceived as a pipeline within an element. Bins can also be nested within one another.
This module contains type specifications of actions that can be returned from bin callbacks.
Module describing context passed to the Membrane.Bin
callbacks.
Struct describing current pad state.
Structure representing a single chunk of data that flows between elements.
Specifies API for metrics that analyze data in terms of a given unit
Implementation of Membrane.Buffer.Metric
for the :bytes
unit
Implementation of Membrane.Buffer.Metric
for the :buffers
unit
Module that keeps track of types used by both elements and bins
Struct describing child entry of a parent.
A child notification is a message sent from Membrane.Element
or Membrane.Bin
to a parent
via action t:Membrane.Element.Action.notify_parent
or t:Membrane.Bin.Action.notify_parent
returned from any callback.
A module with functionalities that allow to represent a topology of a pipeline/bin.
Clock is a Membrane utility that allows elements to measure time according to a particular clock, which can be e.g. a soundcard hardware clock.
A list consisting of following pipeline/bin/element names down the assembled pipeline.
Membrane Filter, that can be used to create a child that will be used to debug data flowing thouth pipeline.
Membrane Sink, that can be used to create a child that will be used to debug data flowing thouth pipeline.
Module containing types and functions for operating on elements.
This module contains type specifications of actions that can be returned from element callbacks.
Module defining behaviour common to all elements.
Describes context passed to the Membrane Element callbacks.
Struct describing current pad state.
Module defining behaviour for sink, filter and endpoint elements.
Module defining behaviour for source and filter elements.
Module defining behaviour for endpoints - elements consuming and producing data.
Represents a communication event, capable of flowing both downstream and upstream.
Generic discontinuity event.
Generic underrun event.
Protocol that allows to configure behaviour of Membrane.Event
s.
Default implementation of Membrane.EventProtocol
.
Module defining behaviour for filters - elements processing data.
An element allowing to aggregate many filters within one Elixir process.
Generic event for requesting a key frame.
Wrapper around the Elixir logger. Adds Membrane prefixes and handles verbose logging.
Pads are units defined by elements and bins, allowing them to be linked with their siblings. This module consists of pads typespecs and utils.
A parent notification is a message sent from Membrane.Parent
or Membrane.Bin
to a child
via action t:Membrane.Pipeline.Action.notify_parent
or t:Membrane.Bin.Action.notify_child
returned from any callback.
This protocol describes actions common to all payload types.
Behaviour that should be implemented by every module that has
Membrane.Payload
protocol implementation.
Membrane.Payload.Behaviour
implementation for binary payload.
Complements Membrane.Payload
protocol implementation.
A behaviour module for implementing pipelines.
This module contains type specifications of actions that can be returned from pipeline callbacks.
Module describing context passed to the Membrane.Pipeline
callbacks.
Playback defines whether media is processed within a pipeline (:playing
) or not (:stopped
).
An abstract module aggregating all the messages that can be sent by the RCPipeline
.
Message sent when some element of the pipeline receives the start of stream event on some pad.
Message sent when the some element of the pipeline receives a notification.
Message sent when the pipeline starts playing
Message sent when some element of the pipeline receives the start of stream event on some pad.
Message sent when the pipeline gracefully terminates.
Remote controlled pipeline - a basic Membrane.Pipeline
implementation that can be remotely controlled from an external process.
Format describing an unparsed data stream. It should be used whenever outputting or accepting an unknown stream (not to be confused with any stream, which can have well-specified format either), or a stream whose format can't/shouldn't be created at that stage.
Utility for handling resources that must be cleaned up after use.
Module defining behaviour for sinks - elements consuming data.
Module that should be used in sources - elements producing data. Declares appropriate behaviours implementation and provides default callbacks implementation.
Defines the capabilities of a pad within the Membrane framework.
Sync allows to synchronize multiple processes, so that they could perform their jobs at the same time.
Defines basic telemetry event types used by Membrane's Core.
This module contains a set of assertion functions and macros.
Testing Element for supplying data based on generator function or payloads passed
through options. It is very similar to Membrane.Testing.Source
but is has dynamic
pad instead of static.
Empty event that can be used in tests
This Pipeline was created to reduce testing boilerplate and ease communication with its children. It also provides a utility for informing testing process about playback changes and received notifications.
Sink Element that notifies the pipeline about buffers and events it receives.
Testing Element for supplying data based on generator function or payloads passed through options.
Module containing functions needed to perform handling of time.
A supervisor responsible for managing utility processes under the pipeline's supervision tree.