This is a correctness fix for the libav VAAPI fallback. On supported AMD/Intel hardware, Punktfunk
prefers its Vulkan Video backend for HEVC/AV1; that path does not use this filter.
Problem
The VAAPI filter passes out_color_matrix=bt2020. FFmpeg rejects that value with Invalid colour_matrix and -22, preventing the fallback HDR graph from opening.
Fix
Use FFmpeg's canonical bt2020nc name for non-constant-luminance BT.2020. This matches the existing AVCOL_SPC_BT2020_NCL encoder VUI. The focused test and explanatory comment are updated with it.
End-to-end fallback validation used a development host built without vulkan-encode. On an RX 9070
XT, it opened the P010/HEVC Main10 VAAPI graph from a Gamescope BT.2020/PQ capture and streamed HDR
to a Steam Deck OLED at 1280×800@90.
AI assistance
OpenAI Codex assisted with investigation and drafting. I reviewed the final change and validation
results and take responsibility for the submission.
## Scope
This is a correctness fix for the libav VAAPI fallback. On supported AMD/Intel hardware, Punktfunk
prefers its Vulkan Video backend for HEVC/AV1; that path does not use this filter.
## Problem
The VAAPI filter passes `out_color_matrix=bt2020`. FFmpeg rejects that value with
`Invalid colour_matrix` and `-22`, preventing the fallback HDR graph from opening.
## Fix
Use FFmpeg's canonical `bt2020nc` name for non-constant-luminance BT.2020. This matches the existing
`AVCOL_SPC_BT2020_NCL` encoder VUI. The focused test and explanatory comment are updated with it.
## Verification
```text
cargo fmt --all -- --check
cargo test -p pf-encode vaapi::tests::vui_and_scale_args_agree_per_depth
cargo check -p pf-encode
git diff --check
```
End-to-end fallback validation used a development host built without `vulkan-encode`. On an RX 9070
XT, it opened the P010/HEVC Main10 VAAPI graph from a Gamescope BT.2020/PQ capture and streamed HDR
to a Steam Deck OLED at 1280×800@90.
## AI assistance
OpenAI Codex assisted with investigation and drafting. I reviewed the final change and validation
results and take responsibility for the submission.
FFmpeg rejects bt2020 as an out_color_matrix value. Use its canonical bt2020nc name for non-constant-luminance BT.2020, matching the existing AVCOL_SPC_BT2020_NCL encoder VUI.
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Scope
This is a correctness fix for the libav VAAPI fallback. On supported AMD/Intel hardware, Punktfunk
prefers its Vulkan Video backend for HEVC/AV1; that path does not use this filter.
Problem
The VAAPI filter passes
out_color_matrix=bt2020. FFmpeg rejects that value withInvalid colour_matrixand-22, preventing the fallback HDR graph from opening.Fix
Use FFmpeg's canonical
bt2020ncname for non-constant-luminance BT.2020. This matches the existingAVCOL_SPC_BT2020_NCLencoder VUI. The focused test and explanatory comment are updated with it.Verification
End-to-end fallback validation used a development host built without
vulkan-encode. On an RX 9070XT, it opened the P010/HEVC Main10 VAAPI graph from a Gamescope BT.2020/PQ capture and streamed HDR
to a Steam Deck OLED at 1280×800@90.
AI assistance
OpenAI Codex assisted with investigation and drafting. I reviewed the final change and validation
results and take responsibility for the submission.
978f459770to22936bbc89