Skip to main content

Module playback

Module playback 

Source
Expand description

Real-time playback types for ff-preview.

This module exposes the primary public API for single-file video/audio playback. All unsafe FFmpeg calls are isolated in playback_inner.

Sub-moduleContents
clockPlaybackClock
master_clockInternal MasterClock
sinkFrameSink trait, RgbaFrame, RgbaSink
decode_bufferDecodeBuffer, FrameResult, SeekEvent
playerPreviewPlayer, PlayerCommand
player_handlePlayerHandle
player_runnerPlayerRunner
async_playerAsyncPreviewPlayer (tokio feature)
playback_innerUnsafe FFmpeg calls (SwsRgbaConverter, PCM extraction)

Structs§

AsyncPreviewPlayer
Async wrapper around PlayerHandle.
DecodeBuffer
Pre-decodes frames from a video file into a ring buffer on a background thread.
DecodeBufferBuilder
Builder for DecodeBuffer.
PlaybackClock
A monotonic clock that tracks elapsed playback time.
PlayerHandle
Shared, cloneable handle to a running PlayerRunner.
PlayerRunner
Exclusive owner of the decode pipeline. Move to a background thread and call run.
PreviewPlayer
Thin builder for a (PlayerRunner, PlayerHandle) pair.
RgbaFrame
A decoded video frame as contiguous RGBA bytes.
RgbaSink
Reference FrameSink implementation that stores the latest frame in a shared Arc<Mutex<Option<RgbaFrame>>>.

Enums§

FrameResult
The result of a DecodeBuffer::pop_frame call.
PlayerCommand
Commands sent from PlayerHandle to PlayerRunner via a bounded sync channel (capacity 64).
SeekEvent
An event emitted by DecodeBuffer after a seek_async completes.

Traits§

FrameSink
A sink that receives decoded video frames as contiguous RGBA bytes.