View Source Membrane.Payload protocol (Membrane Core v1.1.1)

This protocol describes actions common to all payload types.

The most basic payload type is simply a binary for which Elixir.Membrane.Payload is implemented by the Membrane Core.

Summary

Types

t()

A type describing all the types that implement Membrane.Payload protocol.

Functions

Concatenates the contents of two payloads.

Drops first n bytes of payload.

Returns a module responsible for this type of payload and implementing Membrane.Payload.Behaviour

Returns total size of payload in bytes

Splits the payload at given position (1st part has the size equal to at_pos argument)

Converts payload into binary

Types

@type t() :: any()

A type describing all the types that implement Membrane.Payload protocol.

Functions

@spec concat(left :: t(), right :: t()) :: t()

Concatenates the contents of two payloads.

@spec drop(payload :: t(), n :: non_neg_integer()) :: t()

Drops first n bytes of payload.

@spec module(t()) :: module()

Returns a module responsible for this type of payload and implementing Membrane.Payload.Behaviour

@spec size(payload :: t()) :: non_neg_integer()

Returns total size of payload in bytes

Link to this function

split_at(payload, at_pos)

View Source
@spec split_at(payload :: t(), at_pos :: pos_integer()) :: {t(), t()}

Splits the payload at given position (1st part has the size equal to at_pos argument)

at_pos has to be greater than 0 and smaller than the size of payload, otherwise an error is raised. This guarantees returned payloads are never empty.

@spec to_binary(t()) :: binary()

Converts payload into binary