ff_preview/playback/mod.rs
1//! Real-time playback types for ff-preview.
2//!
3//! This module exposes the primary public API for single-file video/audio
4//! playback. All `unsafe` `FFmpeg` calls are isolated in `playback_inner`.
5//!
6//! | Sub-module | Contents |
7//! |--------------------|---------|
8//! | `clock` | [`PlaybackClock`], internal `MasterClock` |
9//! | `sink` | [`FrameSink`] trait, [`RgbaFrame`], [`RgbaSink`] |
10//! | `decode_buffer` | [`DecodeBuffer`], [`FrameResult`], [`SeekEvent`] |
11//! | `player` | [`PreviewPlayer`] |
12//! | `async_player` | [`AsyncPreviewPlayer`] (tokio feature) |
13//! | `playback_inner` | Unsafe `FFmpeg` calls (`SwsRgbaConverter`, PCM extraction) |
14
15mod playback_inner;
16
17pub(crate) mod clock;
18pub(crate) mod decode_buffer;
19pub(crate) mod player;
20pub(crate) mod sink;
21
22#[cfg(feature = "tokio")]
23pub(crate) mod async_player;
24
25pub use clock::PlaybackClock;
26pub use decode_buffer::{DecodeBuffer, DecodeBufferBuilder, FrameResult, SeekEvent};
27pub use player::PreviewPlayer;
28pub use sink::{FrameSink, RgbaFrame, RgbaSink};
29
30#[cfg(feature = "tokio")]
31pub use async_player::AsyncPreviewPlayer;