Skip to content

Share worker: hardware H.264 on Linux (NVENC, VA-API) and clips on Linux - #99

Merged
AlxcBTW merged 3 commits into
mainfrom
feat/linux-hw-encode
Oct 27, 2026
Merged

AlxcBTW merged 3 commits into
mainfrom
feat/linux-hw-encode

Conversation

@AlxcBTW

@AlxcBTW AlxcBTW commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Task T47. Adds NVENC (libnvidia-encode.so.1 + libcuda.so.1, API 11.1) and VA-API (libva.so.2, libva-drm.so.2) behind the worker's encoder trait, loaded with dlopen (libloading, ISC), probed at start, falling back to OpenH264. ANYPLAY_HWENC = auto/off/nvenc/vaapi. Hardware is announced as 1080p60 hardware caps; clips on Linux use the same backends (hardware or nothing). No codec vendored; see ADR 0036 for licences.

Tests: fake backends for selection and fallback, bit-exact H.264 header tests, size asserts on the FFI structs, and per-backend round trips that skip without a GPU (fail with ANYPLAY_REQUIRE_HW).

Not verified: real encoding on any GPU (no hardware in CI or on the build laptop). Launcher side (clips gated by cfg!(windows)) is not part of this PR.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

… on Linux

Both backends are loaded from the system with dlopen, probed at start and
fall back to OpenH264 (ADR 0036).
@AlxcBTW
AlxcBTW merged commit 307a6ab into main Oct 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant