#![warn(missing_docs)]
pub mod bitstream;
pub mod clock;
pub mod color;
pub mod decode;
mod error;
pub trait ReadSeek: std::io::Read + std::io::Seek + Send + Sync {}
impl<T: std::io::Read + std::io::Seek + Send + Sync> ReadSeek for T {}
pub mod frame;
pub mod geometry;
pub mod identify;
pub mod media;
pub mod output;
pub mod output_layer;
pub mod placement;
pub mod plugin;
pub mod scale;
pub mod encode;
#[cfg(all(feature = "encode-platform", target_vendor = "apple"))]
pub mod encode_videotoolbox;
#[cfg(feature = "encode-av1")]
pub mod encode_av1;
#[cfg(all(windows, any(feature = "decode-platform", feature = "encode-platform")))]
pub mod media_foundation;
#[cfg(all(target_os = "android", any(feature = "decode-platform", feature = "encode-platform")))]
pub mod media_codec;
#[cfg(all(
unix,
not(target_vendor = "apple"),
not(target_os = "android"),
any(feature = "decode-platform", feature = "encode-platform")
))]
pub mod gstreamer;
#[cfg(feature = "demux")]
mod playback;
#[cfg(feature = "demux")]
pub mod demux;
#[cfg(feature = "mux")]
pub mod mux;
#[cfg(feature = "transcode")]
pub mod transcode;
#[cfg(feature = "transcode")]
pub mod import;
#[cfg(feature = "demux")]
pub mod compositor;
#[cfg(feature = "demux")]
pub mod player;
#[cfg(feature = "demux")]
pub mod video_source;
#[cfg(feature = "image")]
pub mod still;
#[cfg(feature = "render")]
pub mod render;
#[cfg(all(feature = "window", not(any(target_os = "ios", target_os = "android"))))]
pub mod window;
#[cfg(all(feature = "atome", feature = "render", feature = "demux", feature = "image", any(all(feature = "window", not(any(target_os = "ios", target_os = "android"))), feature = "tauri")))]
mod audio;
#[cfg(all(
feature = "render",
feature = "demux",
feature = "image",
any(all(feature = "window", not(any(target_os = "ios", target_os = "android"))), feature = "tauri")
))]
mod engine;
#[cfg(all(feature = "window", not(any(target_os = "ios", target_os = "android")), feature = "demux", feature = "image"))]
mod standalone;
#[cfg(feature = "tauri")]
mod tauri_host;
#[cfg(feature = "tauri")]
mod tauri_native;
#[cfg(all(feature = "decode-platform", target_vendor = "apple"))]
pub mod decode_videotoolbox;
#[cfg(feature = "decode-av1")]
pub mod decode_av1;
pub use clock::{Clock, Follower, MasterClock, Monotonic, Pacing, SharedClock};
pub use color::ColorSpace;
#[cfg(feature = "demux")]
pub use compositor::{Compositor, CompositorStats};
pub use decode::{Decoder, Hardware};
pub use encode::Encoder;
pub use error::{Error, Result};
pub use frame::{Frame, FramePool, PixelFormat};
pub use geometry::{Fit, Point, Quad, Rect};
pub use identify::{identify_bytes, identify_path, Container, Encoding};
pub use media::{MediaInfo, Packet, TrackInfo, TrackKind};
pub use output::Output;
pub use output_layer::OutputLayer;
pub use placement::{Monitor, MonitorSelector, Placement, ResolvedPlacement};
pub use plugin::Plugin;
#[cfg(feature = "demux")]
pub use player::Player;
#[cfg(feature = "demux")]
pub use video_source::{cache_frames, FrameCache, VideoSource};
#[cfg(feature = "demux")]
pub use demux::{open as open_media, open_reader as open_media_reader, Demuxer};
#[cfg(feature = "image")]
pub use still::load_image;
#[cfg(feature = "transcode")]
pub use import::{
import, import_progress, import_queue, import_with, ImportOptions, ImportQueue, JobId,
JobProgress, QueueConfig, Stage,
};
#[cfg(all(
feature = "render",
feature = "demux",
feature = "image",
any(all(feature = "window", not(any(target_os = "ios", target_os = "android"))), feature = "tauri")
))]
pub use engine::{Audio, Clip, ClipEnded, ClipId, Controls, Hold, OutputRect};
#[cfg(all(feature = "window", not(any(target_os = "ios", target_os = "android")), feature = "demux", feature = "image"))]
pub use standalone::Vtome;
#[cfg(feature = "tauri")]
pub use tauri_host::{Started, TauriVtome};