Lightningbeam/lightningbeam-ui
Skyler Lehmkuhl 6348e57de0 nv12: convert with the source colorspace matrix (not hardcoded BT.709)
The NV12→RGB pass hardcoded BT.709, so SD (BT.601) clips had slightly wrong hues.
Read each frame's AVColorSpace in the importer and derive the Y'CbCr→R'G'B'
matrix (BT.709/601/240M/2020; Unspecified guessed by height like swscale/players),
carry the four coefficients on GpuVideoFrame, and apply them in the shader.

- core: GpuVideoFrame.coeffs + ycbcr_coeffs(kr, kb) helper.
- hw_video.rs: map AVColorSpace → (kr, kb) → coeffs.
- nv12_blit{.rs,.wgsl}: uniform grows to 80 bytes (adds a coeffs vec4); the matrix
  multiply uses params.coeffs instead of literals.

BT.2020's transfer is still approximated as sRGB. The DRM-modifier-without-SAMPLED case stays a graceful software fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 02:32:57 -04:00
..
beamdsp Code cleanup 2026-02-19 11:19:44 -05:00
egui_node_graph2 highlight node connections directly 2026-02-20 11:13:34 -05:00
gpu-video-encoder editor: wire hardware video decode + NV12 preview compositing (Stage 3c-preview) 2026-06-26 02:21:22 -04:00
lightningbeam-core nv12: convert with the source colorspace matrix (not hardcoded BT.709) 2026-06-26 02:32:57 -04:00
lightningbeam-editor nv12: convert with the source colorspace matrix (not hardcoded BT.709) 2026-06-26 02:32:57 -04:00
.gitignore Add Rust desktop UI with Blender-style pane system 2025-11-12 06:13:00 -05:00
Cargo.lock Wire zero-copy VAAPI H.264 into video+audio export 2026-06-25 15:44:50 -04:00
Cargo.toml Add gpu-video-encoder crate: zero-copy VAAPI encode (validated) 2026-06-23 19:07:37 -04:00
GPU_VIDEO_DECODE_PLAN.md export: cache the static background + bilinear video, add render profiling 2026-06-25 23:30:51 -04:00
build-static.sh Video export 2025-12-07 13:17:21 -05:00
build-windows.bat windows build fixes 2026-02-24 14:40:16 -05:00