Expand description
Real-time playback of a Scene.
ScenePlayer opens every placement on the base video track of a Scene
and plays them back in order, mapping each clip’s frame PTS to the unified
timeline coordinate. The Scene is a model-agnostic description an engine
derives from its editing model.
| Type | Role |
|---|---|
ScenePlayer | Thin builder: call open |
SceneRunner | Owns the decode pipelines; move to a thread and call run |
PlayerHandle | Shared, cloneable control handle |
§Audio
When any placement on the base video track carries an audio stream,
ScenePlayer::open creates an AudioMixer with one track per
audio-bearing clip. A background AudioDecoder thread is started for
the active clip and pushes mono samples via AudioTrackHandle. On clip
transition or seek the old thread is cancelled and a new one is started.
PlayerHandle::pop_audio_samples calls AudioMixer::mix and returns
interleaved stereo f32 output.
Structs§
- Scene
- A whole timeline’s worth of playback work, described without the editing model.
- Scene
Audio Placement - One audio-only clip placed on the timeline.
- Scene
Audio Track - One dedicated audio-only track (A1, A2, …).
- Scene
Placement - One video clip placed on the timeline.
- Scene
Player - Thin builder for a (
SceneRunner,PlayerHandle) pair backed by aScene. - Scene
Runner - Exclusive owner of the timeline decode pipeline.
- Scene
Video Track - One video track: an ordered list of clip placements along the timeline. The
track’s index in
Scene::video_tracksis its compositing order (0= base).