miniav_tools_platform_interface library
Public entry point for the miniav_tools platform interface.
Application code should depend on miniav_tools (the facade) rather than
this package directly. Backend authors implement MiniAVToolsBackend.
Classes
- AudioEncoderConfig
- Configuration for an audio encoder (AAC, Opus, …).
- AudioTrackInfo
- BackendContext
- Optional shared resources passed across backend boundaries.
- BackendPreference
- User preference for backend selection on a per-call basis.
- BytesDemuxerInput
- BytesMuxerOutput
- CallbackMuxerOutput
- CodecExtraData
- Codec-private bitstream extras (SPS/PPS for H.264, codec-private for VP9, etc.) emitted once at stream start. Muxers need this to write track headers.
- CpuFrameSource
- CvPixelBufferFrameSource
- D3D11TextureFrameSource
- DecodedFrame
- A decoded frame. Backends may return CPU bytes or GPU handles depending on DecoderConfig.requestGpuOutput.
- DecoderConfig
- Configuration for a video decoder.
- DemuxerConfig
- Configuration for a demuxer (container file/stream → encoded packets).
- DemuxerInput
- Where a demuxer reads its input.
- DmabufFrameSource
- EncodedPacket
- A single encoded video or audio access unit.
- EncoderConfig
- Configuration for a video encoder.
- ExcludedBackendPreference
- FileDemuxerInput
- FileMuxerOutput
- FrameSource
- Sealed: every frame handed to an encoder is one of the variants below.
- GpuTextureFrameSource
- MiniAVAudioBuffer
- MiniAVBuffer
- MiniAVBufferSource
- MiniAVNativeFence
- GPU sync fence information for zero-copy buffer handoff.
- MiniAVToolsBackend
- MiniAVToolsPlatform
- Process-global registry of installed MiniAVToolsBackends.
- MiniAVVideoBuffer
- MuxerConfig
- Configuration for a muxer (encoded packets → container file/stream).
- MuxerOutput
- Where a muxer writes its output.
- PinnedBackendPreference
- PlatformAudioEncoder
- Abstract audio encoder. Backends return a concrete subclass from MiniAVToolsBackend.createAudioEncoder.
- PlatformDecoder
- Lifecycle: create → decode* → flush → close
- PlatformDemuxer
- Abstract container demuxer.
- PlatformEncoder
- Abstract video/audio encoder. Backends return a concrete subclass from MiniAVToolsBackend.createEncoder.
- PlatformMuxer
- Abstract container muxer.
- TrackInfo
- Description of a single track to be written by a muxer.
- VideoTrackInfo
- WarmupProgress
- A single progress snapshot emitted during backend warmup.
- WebVideoFrameSource
-
A browser WebCodecs
VideoFramewrapped as a FrameSource.
Enums
- AudioCodec
- Audio codec identifiers.
- Container
- Container / file-format identifiers for muxing & demuxing.
- EncoderLevel
- H.264 / HEVC level. Backends interpret this codec-appropriately.
- EncoderProfile
- H.264 / HEVC profile identifiers (a sensible cross-codec subset).
- FrameSourceKind
- Discriminator for FrameSource subtypes — used by backends to declare support without runtime type checks.
- HwAccelPreference
- Hardware acceleration preference.
- MiniAVAudioFormat
- MiniAVBufferContentType
- MiniAVBufferType
- MiniAVPixelFormat
- Platform-agnostic types for MiniAV platform interface. These are pure Dart types, not FFI structs.
- RateControl
- Rate-control mode for video encoders.
- VideoCodec
-
Video codec identifiers. Backends declare which they support via
MiniAVToolsBackend.supportsEncode /
supportsDecode.
Exceptions / Errors
- CodecInitException
- A backend was selected but failed to initialise the codec (driver missing, hardware busy, invalid configuration, etc.).
- CodecRuntimeException
- Encoder/decoder is in an error state and must be closed/recreated.
- MiniAVToolsException
- Base class for all miniav_tools exceptions.
- NoBackendForCodecException
- No registered backend can handle the requested codec / container.
- UnsupportedFrameSourceException
- The provided FrameSource kind is not accepted by this backend, and no fallback was possible.