Add the other three YUV formats to the shader
This commit is contained in:
@@ -13,7 +13,17 @@ void
|
||||
main()
|
||||
{
|
||||
// Sample format: Y,U,Y,V
|
||||
vec4 samples = texture2D(texture, texture_coord);
|
||||
vec4 raw = texture2D(texture, texture_coord);
|
||||
#if defined(FMT_YUYV)
|
||||
vec4 samples = raw.xyzw;
|
||||
#elif defined(FMT_YVYU)
|
||||
vec4 samples = raw.xwzy;
|
||||
#elif defined(FMT_UYVY)
|
||||
vec4 samples = raw.yzwx;
|
||||
#elif defined(FMT_VYUY)
|
||||
vec4 samples = raw.wzyx;
|
||||
#endif
|
||||
|
||||
float y = samples.x;
|
||||
float u = samples.y-0.5;
|
||||
float v = samples.w-0.5;
|
||||
|
@@ -44,6 +44,9 @@ gles2_debayer_new(int format)
|
||||
texture_mode = TEXTURE_BAYER;
|
||||
break;
|
||||
case V4L2_PIX_FMT_YUYV:
|
||||
case V4L2_PIX_FMT_YVYU:
|
||||
case V4L2_PIX_FMT_UYVY:
|
||||
case V4L2_PIX_FMT_VYUY:
|
||||
shader = SHADER_YUV;
|
||||
texture_mode = TEXTURE_YUV;
|
||||
break;
|
||||
@@ -60,9 +63,10 @@ gles2_debayer_new(int format)
|
||||
char format_def[64];
|
||||
snprintf(format_def,
|
||||
64,
|
||||
"#define CFA_%s\n#define BITS_%d\n",
|
||||
"#define CFA_%s\n#define BITS_%d\n#define FMT_%s\n",
|
||||
libmegapixels_format_cfa(format),
|
||||
libmegapixels_format_bits_per_pixel(format));
|
||||
libmegapixels_format_bits_per_pixel(format),
|
||||
libmegapixels_format_name(format));
|
||||
|
||||
const GLchar *def[1] = { format_def };
|
||||
|
||||
|
Reference in New Issue
Block a user