forked from unom/punktfunk
FFmpeg's Vulkan Video hwaccel is the youngest code in our decode chain (merged around 6.1/7.0) and 7.1 is a stabilisation branch that does not receive its ongoing fixes. Both field reports of silent inter-frame corruption on Windows — Intel B580 (2026-07) and AMD Xbox Ally X (2026-08) — sit on that hwaccel, while the mature d3d11va one streams clean on the same boxes. Getting onto current FFmpeg is the cheapest thing that can move that, and it keeps Vulkan Video as the default rather than demoting a whole vendor to DXVA. Not new ground for our API usage: Ubuntu 26.04 already ships avcodec 62 (FFmpeg 8.0.1) and pf-client-core clippies clean there today. ffmpeg-sys-next 8.1.0 accepts avcodec 56..63, so the binding needs no change. The presence check is now version-stamped. It used to test only for `lib\avcodec.lib`, which meant editing the pin here would have done NOTHING on every already-provisioned runner — CI would have gone on building against 7.1 while this file said 8.1, and the bump would have looked applied without being applied. A `.punktfunk-ffmpeg-version` marker, written only after a successful extract, makes runners re-provision themselves when the pin moves. Still lgpl-shared (the licensing posture is unchanged) and still SHA-256 pinned fail-closed; both pins re-captured 2026-08-05 from the current n8.1 assets. Verified on the CI runner against a SEPARATE tree (C:\temp\ff81 — the canonical C:\Users\Public\ffmpeg is shared with every other branch's jobs and was left alone): ffmpeg n8.1.2, `cargo check -p pf-client-core --all-targets` and `cargo check -p pf-encode --features amf-qsv,qsv --all-targets` both clean.