#![deny(unsafe_op_in_unsafe_fn)]
pub mod api;
pub mod backends;
pub mod codecs;
pub mod runtime;
pub use api::{
CodecCapability, CodecConfig, CodecStreamInfo, DecodedFrame, DecodedSurface,
DecoderCapabilities, DecoderOptions, DecoderStats, EncodedAccessUnit, FrameDimensions,
PixelFormat, SubmitOutcome, VideoCodec, VideoDecoder, VideoError, VideoTimestamp,
};
pub use codecs::{CodecConfigTracker, ConfigUpdate, H264Config, H265Config};
#[cfg(target_os = "macos")]
pub use backends::macos::{MacOsDecoder, MacOsVideoFrame};
#[cfg(target_os = "macos")]
pub type PlatformDecoder = MacOsDecoder;
#[cfg(target_os = "linux")]
pub use backends::linux::{LinuxDecoder, LinuxVideoFrame};
#[cfg(target_os = "linux")]
pub type PlatformDecoder = LinuxDecoder;
#[cfg(target_os = "windows")]
pub use backends::windows::{WindowsDecoder, WindowsNv12Frame, WindowsVideoFrame};
#[cfg(target_os = "windows")]
pub type PlatformDecoder = WindowsDecoder;
#[cfg(target_os = "android")]
pub use backends::android::{AndroidDecoder, AndroidImagePlane, AndroidVideoFrame};
#[cfg(target_os = "android")]
pub type PlatformDecoder = AndroidDecoder;
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub use backends::web::{WebDecoder, WebVideoFrame};
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub type PlatformDecoder = WebDecoder;