Packages
membrane_core
0.2.2
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc1
1.1.2
1.1.1
1.1.0
1.1.0-rc1
1.1.0-rc0
1.0.1
1.0.0
1.0.0-rc1
1.0.0-rc0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
retired
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Membrane Multimedia Framework (Core)
Current section
Files
Jump to
Current section
Files
lib/membrane/buffer.ex
defmodule Membrane.Buffer do
@moduledoc """
Structure representing a single chunk of data that flows between elements.
For now, it is just a wrapper around bitstring with optionally some metadata
attached to it, but in future releases we plan to support different payload
types.
"""
alias __MODULE__
alias Membrane.Payload
@type metadata_t :: map
@type t :: %Buffer{
payload: Payload.t(),
metadata: metadata_t
}
@enforce_keys [:payload]
defstruct payload: nil,
metadata: Map.new()
@doc """
Converts buffer/buffers to the format in which they can be logged with
`Membrane.Log`.
"""
def print(%Buffer{metadata: metadata, payload: payload}),
do: [
"%Membrane.Buffer{metadata: ",
inspect(metadata),
", payload: ",
{:binary, payload},
"}"
]
def print(buffers), do: buffers |> Enum.map(&print/1)
end