static void paint_setup_Y444 (paintinfo * p, unsigned char *dest);
static void paint_setup_Y800 (paintinfo * p, unsigned char *dest);
static void paint_setup_AYUV (paintinfo * p, unsigned char *dest);
+static void paint_setup_V308 (paintinfo * p, unsigned char *dest);
static void paint_setup_NV12 (paintinfo * p, unsigned char *dest);
static void paint_setup_NV21 (paintinfo * p, unsigned char *dest);
static void paint_hline_Y42B (paintinfo * p, int x, int y, int w);
static void paint_hline_Y444 (paintinfo * p, int x, int y, int w);
static void paint_hline_Y800 (paintinfo * p, int x, int y, int w);
+static void paint_hline_V308 (paintinfo * p, int x, int y, int w);
static void paint_hline_AYUV (paintinfo * p, int x, int y, int w);
#if 0
{VTS_YUV, "Y422", "Y422", 16, paint_setup_UYVY, paint_hline_YUY2},
{VTS_YUV, "UYNV", "UYNV", 16, paint_setup_UYVY, paint_hline_YUY2}, /* FIXME: UYNV? */
{VTS_YUV, "YVYU", "YVYU", 16, paint_setup_YVYU, paint_hline_YUY2},
+ {VTS_YUV, "V308", "V308", 24, paint_setup_V308, paint_hline_V308},
{VTS_YUV, "AYUV", "AYUV", 32, paint_setup_AYUV, paint_hline_AYUV},
/* interlaced */
}
static void
+paint_setup_V308 (paintinfo * p, unsigned char *dest)
+{
+ p->yp = dest;
+ p->up = dest + 1;
+ p->vp = dest + 2;
+ p->ystride = GST_ROUND_UP_4 (p->width * 3);
+ p->endptr = dest + p->ystride * p->height;
+}
+
+static void
paint_setup_AYUV (paintinfo * p, unsigned char *dest)
{
p->ap = dest;
}
static void
+paint_hline_V308 (paintinfo * p, int x, int y, int w)
+{
+ int offset;
+
+ offset = (y * p->ystride) + (x * 3);
+ oil_splat_u8 (p->yp + offset, 3, &p->yuv_color->Y, w);
+ oil_splat_u8 (p->up + offset, 3, &p->yuv_color->U, w);
+ oil_splat_u8 (p->vp + offset, 3, &p->yuv_color->V, w);
+}
+
+static void
paint_hline_AYUV (paintinfo * p, int x, int y, int w)
{
int offset;