From 244d38cf0e5640b6c07abaeebcaffce2d3913345 Mon Sep 17 00:00:00 2001 From: huangdarwin Date: Thu, 18 Aug 2022 11:31:03 +0000 Subject: [PATCH] HDR: Clamp YUV to RGB conversion. Manually tested using transformer demo HLG videos. Before this CL, RGB values after the YUV to RGB conversion reached up to 1.025. After this CL, RGB values correctly clamp at 1.0. PiperOrigin-RevId: 468426092 --- .../assets/shaders/fragment_shader_copy_external_yuv_es3.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/effect/src/main/assets/shaders/fragment_shader_copy_external_yuv_es3.glsl b/libraries/effect/src/main/assets/shaders/fragment_shader_copy_external_yuv_es3.glsl index 88559ee80f..4e6bfda4fb 100644 --- a/libraries/effect/src/main/assets/shaders/fragment_shader_copy_external_yuv_es3.glsl +++ b/libraries/effect/src/main/assets/shaders/fragment_shader_copy_external_yuv_es3.glsl @@ -63,7 +63,7 @@ highp vec4 hlgOetf(highp vec4 hlgColor) { /** Convert YUV to RGBA. */ vec4 yuvToRgba(vec3 yuv) { const vec3 yuvOffset = vec3(0.0625, 0.5, 0.5); - vec3 rgb = uYuvToRgbColorTransform * (yuv - yuvOffset); + vec3 rgb = clamp(uYuvToRgbColorTransform * (yuv - yuvOffset), 0.0, 1.0); return vec4(rgb, 1.0); }