Packages
membrane_core
1.0.0-rc0
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/element.ex
defmodule Membrane.Element do
@moduledoc """
Module containing types and functions for operating on elements.
For behaviours for elements chceck `Membrane.Source`, `Membrane.Filter`,
`Membrane.Endpoint` and `Membrane.Sink`.
"""
@typedoc """
Defines options that can be received in `c:Membrane.Element.Base.handle_init/2`
callback.
"""
@type options :: struct | nil
@typedoc """
Type that defines an element name by which it is identified.
"""
@type name :: tuple() | atom()
@typedoc """
Defines possible element types:
- source, producing buffers
- filter, processing buffers
- endpoint, producing and consuming buffers
- sink, consuming buffers
"""
@type type :: :source | :filter | :endpoint | :sink
@typedoc """
Type of user-managed state of element.
"""
@type state :: any()
@doc """
Checks whether module is an element.
"""
@spec element?(module) :: boolean
def element?(module) do
module |> Bunch.Module.check_behaviour(:membrane_element?)
end
defguard is_element_name?(arg) when is_atom(arg) or is_tuple(arg)
end