vpl-sys 0.1.3

Minimal FFI bindings for a subset of Intel oneVPL (libvpl); dynamic runtime loading via libloading, no build-time link against an Intel import library
Documentation

vpl-sys

Status: early development (0.x). Not recommended for production; public APIs may change without notice. Part of the Mediaway media stack.

Low-level FFI bindings to a subset of Intel oneVPL (libvpl): bindgen-generated struct/union layouts from vendored headers, hand-cited MFX_* constants, and a deliberately reduced dispatcher that resolves a driver-shipped implementation library (libmfxhw64.dll on Windows) at runtime via libloading — no build-time link against an Intel import library.

Quick start

use vpl_sys::Loader;

let loader = Loader::open()?; // resolve oneVPL at runtime (no build-time link)
let mut session = loader.create_session(0)?; // MFX_IMPL_HARDWARE
let version = session.query_version()?;

Status

Status marks: ✅ first-class (tests for claimed scope) · ⚡ Zero-Copy path (no payload copy; implies ✅) · 🆗 best-effort / prototype · 🛠️ planned · ❌ attempted and genuinely blocked · 👻 not exercisable yet (no hardware / device / session available)

Area Status Notes
Raw oneVPL type layouts (vendored headers, Clang-verified) raw module
MFX_* constants consts module, each cited to its header
Runtime dispatcher (Loader / Session) Reduced reimplementation; first working Intel GPU impl wins
Encode entry points ~10 MFX* fns for the H.264 CPU-upload encode path
Multi-implementation ranking / capability filtering 🛠️ Not part of this Stage-1 dispatcher

Docs

  • Consumer: Intel Quick Sync encode (mediaway-encoder quicksync module)
  • Root README — workspace overview

Contributing

Contributions are welcome — open an issue or pull request at github.com/nyxways/mediaway.

License

MIT OR Apache-2.0.