Packages
membrane_core
0.5.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/core/pipeline/state.ex
defmodule Membrane.Core.Pipeline.State do
@moduledoc false
# Structure representing state of a pipeline. It is a part of the private API.
# It does not represent state of pipelines you construct, it's a state used
# internally in Membrane.
alias Membrane.Child
alias Membrane.Core.Playback
alias Membrane.{Clock, Sync}
use Bunch
@type t :: %__MODULE__{
internal_state: internal_state_t | nil,
playback: Playback.t(),
module: module,
children: children_t,
clock_provider: %{
clock: Clock.t() | nil,
provider: Child.name_t() | nil,
choice: :auto | :manual
},
clock_proxy: Clock.t()
}
@type internal_state_t :: map | struct
@type child_data_t :: %{pid: pid, clock: Clock.t(), sync: Sync.t()}
@type children_t :: %{Child.name_t() => child_data_t}
@enforce_keys [:module, :clock_proxy]
defstruct @enforce_keys ++
[
internal_state: nil,
children: %{},
playback: %Playback{},
clock_provider: %{clock: nil, provider: nil, choice: :auto}
]
end