diff options
author | Ricardo Ribalda | 2015-05-04 10:07:29 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab | 2015-05-18 21:01:46 +0200 |
commit | 18b3b3b8edb136d90e5d16d986ce9ae7eaeb0776 (patch) | |
tree | ed25b33e565816af1a6973f91a43e50b69c9f203 /drivers/media/platform/vivid/vivid-tpg.c | |
parent | [media] rtl28xxu: load SDR module for fc2580 based devices (diff) | |
download | kernel-qcow2-linux-18b3b3b8edb136d90e5d16d986ce9ae7eaeb0776.tar.gz kernel-qcow2-linux-18b3b3b8edb136d90e5d16d986ce9ae7eaeb0776.tar.xz kernel-qcow2-linux-18b3b3b8edb136d90e5d16d986ce9ae7eaeb0776.zip |
[media] media/vivid: Add support for Y16 format
Support for V4L2_PIX_FMT_Y16, a 16 bit greyscale format.
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/platform/vivid/vivid-tpg.c')
-rw-r--r-- | drivers/media/platform/vivid/vivid-tpg.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/platform/vivid/vivid-tpg.c b/drivers/media/platform/vivid/vivid-tpg.c index 4df755aa7e48..9e50303a19c5 100644 --- a/drivers/media/platform/vivid/vivid-tpg.c +++ b/drivers/media/platform/vivid/vivid-tpg.c @@ -220,6 +220,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) case V4L2_PIX_FMT_ARGB32: case V4L2_PIX_FMT_ABGR32: case V4L2_PIX_FMT_GREY: + case V4L2_PIX_FMT_Y16: tpg->is_yuv = false; break; case V4L2_PIX_FMT_YUV444: @@ -313,6 +314,7 @@ bool tpg_s_fourcc(struct tpg_data *tpg, u32 fourcc) case V4L2_PIX_FMT_YUV444: case V4L2_PIX_FMT_YUV555: case V4L2_PIX_FMT_YUV565: + case V4L2_PIX_FMT_Y16: tpg->twopixelsize[0] = 2 * 2; break; case V4L2_PIX_FMT_RGB24: @@ -712,7 +714,8 @@ static void precalculate_color(struct tpg_data *tpg, int k) g <<= 4; b <<= 4; } - if (tpg->qual == TPG_QUAL_GRAY || tpg->fourcc == V4L2_PIX_FMT_GREY) { + if (tpg->qual == TPG_QUAL_GRAY || tpg->fourcc == V4L2_PIX_FMT_GREY || + tpg->fourcc == V4L2_PIX_FMT_Y16) { /* Rec. 709 Luma function */ /* (0.2126, 0.7152, 0.0722) * (255 * 256) */ r = g = b = (13879 * r + 46688 * g + 4713 * b) >> 16; @@ -895,6 +898,10 @@ static void gen_twopix(struct tpg_data *tpg, case V4L2_PIX_FMT_GREY: buf[0][offset] = r_y; break; + case V4L2_PIX_FMT_Y16: + buf[0][offset] = 0; + buf[0][offset+1] = r_y; + break; case V4L2_PIX_FMT_YUV422P: case V4L2_PIX_FMT_YUV420: case V4L2_PIX_FMT_YUV420M: |