From 89e08db8b84a5dd11904bf7de39f6ee06144db49 Mon Sep 17 00:00:00 2001 From: NetterSilver <133535268+Silvertree2010@users.noreply.github.com> Date: Sat, 24 Oct 2026 18:50:11 +0000 Subject: [PATCH] Clamp negative signals to zero in hlg_decode Found while testing crates/color/src/transfer.rs:52 Co-Authored-By: Claude Haiku 5.5 Co-Authored-By: Claude Sonnet 5.5 --- crates/color/src/transfer.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/color/src/transfer.rs b/crates/color/src/transfer.rs index 8a7e4fdbf..72ff76fc7 100644 --- a/crates/color/src/transfer.rs +++ b/crates/color/src/transfer.rs @@ -49,6 +49,7 @@ pub fn hlg_encode(e: f64) -> f64 { } pub fn hlg_decode(s: f64) -> f64 { + let s = s.max(0.0); if s <= 0.5 { s * s / 3.0 } else { (((s - HLG_C) / HLG_A).exp() + HLG_B) / 12.0 } } @@ -112,6 +113,11 @@ mod tests { } } + #[test] + fn hlg_decode_clamps_negative() { + assert_eq!(hlg_decode(-0.5), 0.0); + } + #[test] fn pq_hlg_roundtrip() { for i in 0..=50 {