From bee99a69e39a0061790ffddbb84c991988681db5 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 25 Jul 2023 04:46:45 +0200 Subject: Dont use jpeg color range (fixes too dark image on amd/intel in flatpak) --- src/color_conversion.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/color_conversion.c') diff --git a/src/color_conversion.c b/src/color_conversion.c index 6d9f9d2..caf0488 100644 --- a/src/color_conversion.c +++ b/src/color_conversion.c @@ -18,10 +18,11 @@ static float abs_f(float v) { " 0.0, 0.0, 0.0, 1.0);\n" \ "}\n" -#define RGB_TO_YUV "const mat4 RGBtoYUV = mat4(0.2126, 0.5000, -0.1146, 0.0,\n" \ - " 0.7152, -0.4542, -0.3854, 0.0,\n" \ - " 0.0722, -0.0468, 0.5000, 0.0,\n" \ - " 0.0000, 0.5000, 0.5000, 1.0);" +/* BT709 limited */ +#define RGB_TO_YUV "const mat4 RGBtoYUV = mat4(0.1826, -0.1006, 0.4392, 0.0,\n" \ + " 0.6142, -0.3386, -0.3989, 0.0,\n" \ + " 0.0620, 0.4392, -0.0403, 0.0,\n" \ + " 0.0625, 0.5000, 0.5000, 1.0);" static int load_shader_rgb(gsr_shader *shader, gsr_egl *egl, int *rotation_uniform) { char vertex_shader[2048]; @@ -122,7 +123,7 @@ static unsigned int load_shader_uv(gsr_shader *shader, gsr_egl *egl, int *rotati "void main() \n" "{ \n" " vec4 pixel = texture(tex1, texcoords_out); \n" - " FragColor.xy = (RGBtoYUV * vec4(pixel.rgb, 1.0)).zy; \n" + " FragColor.xy = (RGBtoYUV * vec4(pixel.rgb, 1.0)).yz; \n" " FragColor.w = pixel.a; \n" "} \n"; -- cgit v1.2.3