g = g < 0 ? 0 : g > 255 ? 255 : g; \
b = b < 0 ? 0 : b > 255 ? 255 : b;
+#define SCALED 1
+#if SCALED
+#define RGB2YUV_601 RGB2YUV_601_SCALED
+#define YUV2RGB_601 YUV2RGB_601_SCALED
+#else
+#define RGB2YUV_601 RGB2YUV_601_UNSCALED
+#define YUV2RGB_601 YUV2RGB_601_UNSCALED
+#endif
static int convert_yuv422_to_rgb24a( uint8_t *yuv, uint8_t *rgba, uint8_t *alpha, int width, int height )
{
yy = yuv[0];
uu = yuv[1];
vv = yuv[3];
- YUV2RGB_601_SCALED (yy, uu, vv, r, g, b);
+ YUV2RGB_601( yy, uu, vv, r, g, b );
rgba[0] = r;
rgba[1] = g;
rgba[2] = b;
rgba[3] = 255;
yy = yuv[2];
- YUV2RGB_601_SCALED (yy, uu, vv, r, g, b);
+ YUV2RGB_601( yy, uu, vv, r, g, b );
rgba[4] = r;
rgba[5] = g;
rgba[6] = b;
yy = yuv[0];
uu = yuv[1];
vv = yuv[3];
- YUV2RGB_601_SCALED (yy, uu, vv, r, g, b);
+ YUV2RGB_601( yy, uu, vv, r, g, b );
rgb[0] = r;
rgb[1] = g;
rgb[2] = b;
yy = yuv[2];
- YUV2RGB_601_SCALED (yy, uu, vv, r, g, b);
+ YUV2RGB_601( yy, uu, vv, r, g, b );
rgb[3] = r;
rgb[4] = g;
rgb[5] = b;
g = *s++;
b = *s++;
*alpha++ = *s++;
- RGB2YUV_601_SCALED (r, g, b, y0, u0 , v0);
+ RGB2YUV_601( r, g, b, y0, u0 , v0 );
r = *s++;
g = *s++;
b = *s++;
*alpha++ = *s++;
- RGB2YUV_601_SCALED (r, g, b, y1, u1 , v1);
+ RGB2YUV_601( r, g, b, y1, u1 , v1 );
*d++ = y0;
*d++ = (u0+u1) >> 1;
*d++ = y1;
g = *s++;
b = *s++;
*alpha++ = *s++;
- RGB2YUV_601_SCALED (r, g, b, y0, u0 , v0);
+ RGB2YUV_601( r, g, b, y0, u0 , v0 );
*d++ = y0;
*d++ = u0;
}
g = *s++;
b = *s++;
s++;
- RGB2YUV_601_SCALED (r, g, b, y0, u0 , v0);
+ RGB2YUV_601( r, g, b, y0, u0 , v0 );
r = *s++;
g = *s++;
b = *s++;
s++;
- RGB2YUV_601_SCALED (r, g, b, y1, u1 , v1);
+ RGB2YUV_601( r, g, b, y1, u1 , v1 );
*d++ = y0;
*d++ = (u0+u1) >> 1;
*d++ = y1;
g = *s++;
b = *s++;
s++;
- RGB2YUV_601_SCALED (r, g, b, y0, u0 , v0);
+ RGB2YUV_601( r, g, b, y0, u0 , v0 );
*d++ = y0;
*d++ = u0;
}
r = *s++;
g = *s++;
b = *s++;
- RGB2YUV_601_SCALED (r, g, b, y0, u0 , v0);
+ RGB2YUV_601( r, g, b, y0, u0 , v0 );
r = *s++;
g = *s++;
b = *s++;
- RGB2YUV_601_SCALED (r, g, b, y1, u1 , v1);
+ RGB2YUV_601( r, g, b, y1, u1 , v1 );
*d++ = y0;
*d++ = (u0+u1) >> 1;
*d++ = y1;
r = *s++;
g = *s++;
b = *s++;
- RGB2YUV_601_SCALED (r, g, b, y0, u0 , v0);
+ RGB2YUV_601( r, g, b, y0, u0 , v0 );
*d++ = y0;
*d++ = u0;
}