Commit 71491063 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] vivid: add support for PIX_FMT_RGB332

Add support for the one-byte-per-pixel RGB332 format.
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent dde72bd7
......@@ -188,6 +188,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
tpg->hmask[2] = ~0;
switch (fourcc) {
case V4L2_PIX_FMT_RGB332:
case V4L2_PIX_FMT_RGB565:
case V4L2_PIX_FMT_RGB565X:
case V4L2_PIX_FMT_RGB444:
......@@ -274,6 +275,9 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
}
switch (fourcc) {
case V4L2_PIX_FMT_RGB332:
tpg->twopixelsize[0] = 2;
break;
case V4L2_PIX_FMT_RGB565:
case V4L2_PIX_FMT_RGB565X:
case V4L2_PIX_FMT_RGB444:
......@@ -717,6 +721,11 @@ static void precalculate_color(struct tpg_data *tpg, int k)
b = (b * 219) / 255 + (16 << 4);
}
switch (tpg->fourcc) {
case V4L2_PIX_FMT_RGB332:
r >>= 9;
g >>= 9;
b >>= 10;
break;
case V4L2_PIX_FMT_RGB565:
case V4L2_PIX_FMT_RGB565X:
r >>= 7;
......@@ -890,6 +899,9 @@ static void gen_twopix(struct tpg_data *tpg,
buf[0][0] = b_v;
buf[0][2] = g_u;
break;
case V4L2_PIX_FMT_RGB332:
buf[0][offset] = (r_y << 5) | (g_u << 2) | b_v;
break;
case V4L2_PIX_FMT_RGB565:
buf[0][offset] = (g_u << 5) | b_v;
buf[0][offset + 1] = (r_y << 3) | (g_u >> 3);
......
......@@ -170,6 +170,14 @@ struct vivid_fmt vivid_formats[] = {
.planes = 1,
.buffers = 1,
},
{
.name = "RGB332",
.fourcc = V4L2_PIX_FMT_RGB332, /* rrrgggbb */
.vdownsampling = { 1 },
.bit_depth = { 8 },
.planes = 1,
.buffers = 1,
},
{
.name = "RGB565 (LE)",
.fourcc = V4L2_PIX_FMT_RGB565, /* gggbbbbb rrrrrggg */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment