23
« on: 2014-03-18 22:59:43 »
If it was just a wrong color conversion you can change the yuv to rgb in the shader conversion to equalize it (you might get a little bit banding but i doubt it). I'll have a look into it. That way only the movies are affected.
Someone here did a color conversion for the 2012 movies an reencoded them. You can use those, too.
EDIT: Wait, I just remembered, wasn't it just a fault in the latest Aalis driver shader? Is it still wrong with the following yuv.frag:
#version 110
uniform sampler2D y_tex;
uniform sampler2D u_tex;
uniform sampler2D v_tex;
uniform bool full_range;
const mat3 mpeg_rgb_transform = mat3(
1.164, 1.164, 1.164,
0.0, -0.392, 2.017,
1.596, -0.813, 0.0
);
const mat3 jpeg_rgb_transform = mat3(
1.0, 1.0, 1.0,
0.0, -0.343, 1.765,
1.4, -0.711, 0.0
);
void main()
{
float y = texture2D(y_tex, gl_TexCoord[0].st).x;
float u = texture2D(u_tex, gl_TexCoord[0].st).x - 0.5;
float v = texture2D(v_tex, gl_TexCoord[0].st).x - 0.5;
vec3 yuv_color = vec3(y, u, v);
vec4 rgba_color;
if(full_range) rgba_color = vec4(jpeg_rgb_transform * yuv_color, 1.0);
else
{
yuv_color.x = yuv_color.x - (1.0 / 16.0);
rgba_color = vec4(mpeg_rgb_transform * yuv_color, 1.0);
}
gl_FragColor = rgba_color;
}
Or did you mean the original 2012 release without Aalis driver?