Packages
membrane_core
0.8.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/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` and
`Membrane.Sink`.
"""
@typedoc """
Defines options that can be received in `c:Membrane.Element.Base.handle_init/1`
callback.
"""
@type options_t :: struct | nil
@typedoc """
Type that defines an element name by which it is identified.
"""
@type name_t :: any()
@typedoc """
Defines possible element types:
- source, producing buffers
- filter, processing buffers
- sink, consuming buffers
"""
@type type_t :: :source | :filter | :sink
@typedoc """
Type of user-managed state of element.
"""
@type state_t :: map | struct
@doc """
Checks whether module is an element.
"""
@spec element?(module) :: boolean
def element?(module) do
module |> Bunch.Module.check_behaviour(:membrane_element?)
end
end