Expand description
GPU-only decode dispatch.
Per the 2026-05-08 directive: every CPU decoder (openh264, libde265,
libvpx, rav1d, libmpeg2, libxvidcore, pure-Rust ProRes) was deleted
along with the legacy FallbackDecoder GPU→CPU fallover. The
production binary supports exactly two backends:
- NVDEC (NVIDIA, via libnvcuvid)
- QSV (Intel, via libvpl + iHD)
Hosts without one of those (no NVIDIA, no Intel Arc / Meteor Lake,
or a codec the local GPU can’t decode) hard-fail at
create_decoder. There is no CPU decode path of any shape.
Structs§
- Decode
Support - One codec’s decode support across the compiled backends.
Traits§
Functions§
- create_
decoder - Construct a hardware decoder for
codec. NVIDIA GPUs win on tie when both vendors are present (NVDEC is generally lower-latency on the standard codec set + is what the production fleet has been tuned against). When NVDEC is disabled per env-var or doesn’t support the codec, fall through to QSV. If neither fits, hard-fail — there is no CPU fallback. - create_
decoder_ on - Construct a decoder pinned to a specific
gpu_indexwhen one is supplied.Nonepreserves the legacy “pick the first matching adapter” behaviour for one-shot callers (thumbnails, tests, benches) that don’t care about distributing work across physical GPUs. - decode_
backends - Decode backends compiled into this build, in dispatch-preference order.
- decode_
capabilities - Which compiled backends decode each common codec, for
rivet capabilities.