Packages
membrane_core
0.8.1
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/playback_state.ex
defmodule Membrane.PlaybackState do
@moduledoc """
Playback states describe the state of an element or a pipeline. There are following
playback states:
- `:stopped` - Idle. No resources should be initialized nor allocated.
- `:prepared` - Ready for processing data. All necessary resources should be allocated and initialized.
- `:playing` - Data is being processed.
Every playback state change is done step-by-step meaning that when going from `:stopped` to `:playing`
there are 2 state changes (`:stopped` -> `:prepared` and `:prepared` -> `:playing`) resulting in
invocation of proper callbacks (such as `c:Membrane.Element.Base.handle_stopped_to_prepared/2`
or `c:Membrane.Parent.handle_prepared_to_playing/2`)
"""
@type t :: :stopped | :prepared | :playing | :terminating
defguard is_playback_state(atom) when atom in [:stopped, :prepared, :playing, :terminating]
end