Expand description
Per-codec hardware engine probing.
Each HW-accel sibling crate (oxideav-nvidia, oxideav-vaapi,
oxideav-vdpau, oxideav-vulkan-video, oxideav-videotoolbox) attaches
an EngineProbeFn to every crate::CodecInfo it registers via
crate::CodecInfo::with_engine_probe. The CLI’s info command
(and any other consumer) calls the probe on demand to enumerate
the physical / logical engines that backend can dispatch to —
GPU name, driver version, per-codec capability matrix, etc.
Probes are called on demand, not at registration time, so the cost of opening device handles + querying capabilities is only paid when someone asks. Probes should be idempotent and side-effect free; consumers may call them more than once per process.
There is no distributed slice and no collection macro: engine info
travels with each crate::CodecInfo, matching the explicit-calls
pattern already used by oxideav-meta’s register_all. Consumers
that want to enumerate engines walk the codec registry, group
entries by crate::CodecInfo::engine_id, and call each backend’s
EngineProbeFn at most once per group.
Structs§
- HwCodec
Caps - Capabilities of a single codec on a single device.
- HwDevice
Info - A single hardware engine the backend can dispatch to. For NVIDIA / Vulkan / VA-API DRM, this is one entry per physical GPU. For VDPAU on a single-X11-display system, this is one entry per X screen. For VideoToolbox on Apple Silicon, this is one entry per SoC.
Type Aliases§
- Engine
Probe Fn - Function signature for a backend’s engine probe. Returns one entry per device the backend currently sees. Call cheaply; consumers may call multiple times per process.