aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2026-05-10 05:03:22 +0200
committerdec05eba <dec05eba@protonmail.com>2026-05-10 05:03:22 +0200
commit04ce1f775d32332f6ae4f3522f0f6aa03d715c0e (patch)
tree10266aecff7af7e9ba6c67d40757dc2ce9ec8358 /src
parentbb0f99fbed7d7d8c4cbc86df910bb24dc04bd43e (diff)
Improve color accuracy for 8bit capture (slightly increase brightness to compensate for lower yuv values)
Diffstat (limited to 'src')
-rw-r--r--src/color_conversion.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/color_conversion.c b/src/color_conversion.c
index bb39df9..c00bfb5 100644
--- a/src/color_conversion.c
+++ b/src/color_conversion.c
@@ -91,10 +91,12 @@ static int load_graphics_shader_y(gsr_shader *shader, gsr_egl *egl, gsr_color_gr
" gl_Position = vec4(offset.x, offset.y, 0.0, 0.0) + vec4(pos.x, pos.y, 0.0, 1.0); \n"
"} \n");
- const char *main_code =
- " vec4 pixel = texture(tex1, texcoords_out); \n"
- " FragColor.x = (RGBtoYUV * vec4(pixel.rgb, 1.0)).x; \n"
- " FragColor.w = pixel.a; \n";
+ const char *brightness = color_format == GSR_DESTINATION_COLOR_NV12 ? "1.007049345" : "1.0";
+ char main_code[512];
+ snprintf(main_code, sizeof(main_code),
+ " vec4 pixel = texture(tex1, texcoords_out); \n"
+ " FragColor.x = (RGBtoYUV * vec4(pixel.rgb, 1.0)).x*%s; \n"
+ " FragColor.w = pixel.a; \n", brightness);
char fragment_shader[2048];
if(external_texture) {