API Reference Membrane Core v0.7.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.

Structure representing a context that is passed to the pipeline when a crash group is down.

Structure representing a context that is passed to the callback when bin receives notification.

Structure representing a context that is passed to the callback when bin receives unrecognized message.

Structure representing a context that is passed to the bin when a new dynamic pad instance added is created

Structure representing a context that is passed to the bin when a dynamic pad is removed

Structure representing a context that is passed to the callback of the bin when it changes playback state

Structure representing a context that is passed to the callback of the bin when it instantiates children and links them according to Membrane.ParentSpec

Structure representing a context that is passed to the bin when handling start and end of stream events.

Structure representing a context that is passed to the callback when bin handles timer tick.

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

Describes capabilities of some pad.

Module that allows to specify valid caps and verify that they match specification.

Module that keeps track of types used by both elements and bins

Struct describing child entry of a parent.

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.

Traces element's path inside a pipeline. Path is a list consisted of following pipeline/bin/element names down the assembled pipeline. Information is being stored in a process dictionary and can be set/appended to.

Buffer that is attached to the :input pad when working in a :pull mode.

Module containing types and functions for operating on crash groups. Crash groups can be used through Membrane.ParentSpec.

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.

This module has been deprecated in favour of Membrane.Filter.

This module has been deprecated in favour of Membrane.Sink.

This module has been deprecated in favour of Membrane.Source.

Structure representing a context that is passed to the element when receiving information about new caps for given pad.

Structure representing a context that is passed to the element when processing incoming demand.

Structure representing a context that is passed to the element when handling event.

Structure representing a context that is passed to the callback when element receives unrecognized message.

Structure representing a context that is passed to the element when a new dynamic pad instance is created

Structure representing a context that is passed to the element when a dynamic pad is removed

Structure representing a context that is passed to the callback of the element when it changes playback state

Structure representing a context that is passed to the element when new buffer arrives.

Structure representing a context that is passed to the element when handling start and end of stream events.

Structure representing a context that is passed to the callback when element handles timer tick.

Structure representing a context that is passed to the element when new buffer arrives to the sink.

Module defining behaviour for sink and filter elements.

Module defining behaviour for source and filter elements.

Event is an entity that can be sent between elements.

Generic discontinuity event.

Generic underrun event.

Protocol that allows to configure behaviour of Membrane.Events.

Module defining behaviour for filters - elements processing data.

Generic event for requesting a key frame.

Membrane.Log deprecated

Mixin for logging using simple functions such as info/1, debug/1 in other modules.

Membrane.Log.Logger deprecated

Module containing functions spawning, shutting down, and handling messages sent to logger.

This is a base module used by all logger implementations.

Membrane.Log.Router deprecated

Defines a router that dispatches logs to instances of Membrane.Log.Logger.Base

Module responsible for supervising router_level loggers. It is also responsible for receiving and routing log messages to appropriate loggers.

Wrapper around the Elixir logger. Adds Membrane prefixes and handles verbose logging.

A notification is a message sent from Membrane.Element to a parent via action Membrane.Element.Action.notify_t/0 returned from any callback.

Pads are units defined by elements and bins, allowing them to be linked with their siblings. This module consists of pads typespecs and utils.

Struct describing current pad state.

Structure representing the topology of a pipeline/bin.

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.

Module containing functions for constructing and supervising pipelines.

This module contains type specifications of actions that can be returned from pipeline callbacks.

Structure representing a context that is passed to the bin when a crash group is down.

Structure representing a context that is passed to the callback when pipeline receives a notification.

Structure representing a context that is passed to the callback when pipeline receives an unrecognized message.

Structure representing a context that is passed to the callback of the pipeline when it changes its playback state

Structure representing a context that is passed to the callback of the pipeline when it instantiates children and links them according to Membrane.ParentSpec

Structure representing a context that is passed to the pipeline when handling start and end of stream events.

Structure representing a context that is passed to the callback when pipeline handles timer tick.

Playback states describe the state of an element or a pipeline. There are following playback states

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.

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.

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. Membrane uses Telemetry Package for instrumentation and does not store or save any measurements by itself.

This module contains a set of assertion functions and macros.

Empty event that can be used in tests

This Pipeline was created to reduce testing boilerplate and ease communication with its elements. It also provides a utility for informing testing process about playback state changes and received notifications.

Structure representing options passed to testing pipeline.

Structure representing state.

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.