diff options
-rw-r--r-- | drivers/media/video/vivi.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c index 523f78c4847..2a6ebc126c0 100644 --- a/drivers/media/video/vivi.c +++ b/drivers/media/video/vivi.c @@ -134,6 +134,11 @@ static struct vivi_fmt formats[] = { .fourcc = V4L2_PIX_FMT_YUYV, .depth = 16, }, + { + .name = "4:2:2, packed, UYVY", + .fourcc = V4L2_PIX_FMT_UYVY, + .depth = 16, + }, }; static struct vivi_fmt *get_format(struct v4l2_format *f) @@ -282,6 +287,20 @@ static void gen_twopix(struct vivi_fh *fh, unsigned char *buf, int colorpos) break; } break; + case V4L2_PIX_FMT_UYVY: + switch (color) { + case 1: + case 3: + *p = r_y; + break; + case 0: + *p = g_u; + break; + case 2: + *p = b_v; + break; + } + break; } } } @@ -756,6 +775,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv, switch (fh->fmt->fourcc) { case V4L2_PIX_FMT_YUYV: + case V4L2_PIX_FMT_UYVY: is_yuv = 1; break; } |