Skip to main content

Module engine

Module engine 

Source
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§

HwCodecCaps
Capabilities of a single codec on a single device.
HwDeviceInfo
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§

EngineProbeFn
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.