forked from Minki/linux
[media] vivid: add RGB444 support
Add support for (A/X)RGB444 formats. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
b521c37551
commit
8aca230b6d
@ -190,6 +190,9 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
|
||||
switch (fourcc) {
|
||||
case V4L2_PIX_FMT_RGB565:
|
||||
case V4L2_PIX_FMT_RGB565X:
|
||||
case V4L2_PIX_FMT_RGB444:
|
||||
case V4L2_PIX_FMT_XRGB444:
|
||||
case V4L2_PIX_FMT_ARGB444:
|
||||
case V4L2_PIX_FMT_RGB555:
|
||||
case V4L2_PIX_FMT_XRGB555:
|
||||
case V4L2_PIX_FMT_ARGB555:
|
||||
@ -264,6 +267,9 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc)
|
||||
switch (fourcc) {
|
||||
case V4L2_PIX_FMT_RGB565:
|
||||
case V4L2_PIX_FMT_RGB565X:
|
||||
case V4L2_PIX_FMT_RGB444:
|
||||
case V4L2_PIX_FMT_XRGB444:
|
||||
case V4L2_PIX_FMT_ARGB444:
|
||||
case V4L2_PIX_FMT_RGB555:
|
||||
case V4L2_PIX_FMT_XRGB555:
|
||||
case V4L2_PIX_FMT_ARGB555:
|
||||
@ -701,6 +707,13 @@ static void precalculate_color(struct tpg_data *tpg, int k)
|
||||
g >>= 6;
|
||||
b >>= 7;
|
||||
break;
|
||||
case V4L2_PIX_FMT_RGB444:
|
||||
case V4L2_PIX_FMT_XRGB444:
|
||||
case V4L2_PIX_FMT_ARGB444:
|
||||
r >>= 8;
|
||||
g >>= 8;
|
||||
b >>= 8;
|
||||
break;
|
||||
case V4L2_PIX_FMT_RGB555:
|
||||
case V4L2_PIX_FMT_XRGB555:
|
||||
case V4L2_PIX_FMT_ARGB555:
|
||||
@ -855,6 +868,14 @@ static void gen_twopix(struct tpg_data *tpg,
|
||||
buf[0][offset] = (r_y << 3) | (g_u >> 3);
|
||||
buf[0][offset + 1] = (g_u << 5) | b_v;
|
||||
break;
|
||||
case V4L2_PIX_FMT_RGB444:
|
||||
case V4L2_PIX_FMT_XRGB444:
|
||||
alpha = 0;
|
||||
/* fall through */
|
||||
case V4L2_PIX_FMT_ARGB444:
|
||||
buf[0][offset] = (g_u << 4) | b_v;
|
||||
buf[0][offset + 1] = (alpha & 0xf0) | r_y;
|
||||
break;
|
||||
case V4L2_PIX_FMT_RGB555:
|
||||
case V4L2_PIX_FMT_XRGB555:
|
||||
alpha = 0;
|
||||
|
@ -170,6 +170,31 @@ struct vivid_fmt vivid_formats[] = {
|
||||
.buffers = 1,
|
||||
.can_do_overlay = true,
|
||||
},
|
||||
{
|
||||
.name = "RGB444",
|
||||
.fourcc = V4L2_PIX_FMT_RGB444, /* xxxxrrrr ggggbbbb */
|
||||
.vdownsampling = { 1 },
|
||||
.bit_depth = { 16 },
|
||||
.planes = 1,
|
||||
.buffers = 1,
|
||||
},
|
||||
{
|
||||
.name = "XRGB444",
|
||||
.fourcc = V4L2_PIX_FMT_XRGB444, /* xxxxrrrr ggggbbbb */
|
||||
.vdownsampling = { 1 },
|
||||
.bit_depth = { 16 },
|
||||
.planes = 1,
|
||||
.buffers = 1,
|
||||
},
|
||||
{
|
||||
.name = "ARGB444",
|
||||
.fourcc = V4L2_PIX_FMT_ARGB444, /* aaaarrrr ggggbbbb */
|
||||
.vdownsampling = { 1 },
|
||||
.bit_depth = { 16 },
|
||||
.planes = 1,
|
||||
.buffers = 1,
|
||||
.alpha_mask = 0x00f0,
|
||||
},
|
||||
{
|
||||
.name = "RGB555 (LE)",
|
||||
.fourcc = V4L2_PIX_FMT_RGB555, /* gggbbbbb arrrrrgg */
|
||||
|
Loading…
Reference in New Issue
Block a user