diff options
| author | dec05eba <dec05eba@protonmail.com> | 2026-05-10 05:03:22 +0200 |
|---|---|---|
| committer | dec05eba <dec05eba@protonmail.com> | 2026-05-10 05:03:22 +0200 |
| commit | 04ce1f775d32332f6ae4f3522f0f6aa03d715c0e (patch) | |
| tree | 10266aecff7af7e9ba6c67d40757dc2ce9ec8358 /src | |
| parent | bb0f99fbed7d7d8c4cbc86df910bb24dc04bd43e (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.c | 10 |
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) { |
