OSDN Git Service

[media] uvcvideo: Support 10bit, 12bit and alternate 8bit greyscale formats
authorStefan Muenzel <stefanmuenzel@googlemail.com>
Sat, 28 Jul 2012 22:49:14 +0000 (19:49 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 13 Aug 2012 18:49:56 +0000 (15:49 -0300)
The SPCAM SP620U camera uses the alternate "Y8  " GUID for the 8-bit
greyscale format, and supports a 12-bit greyscale format. Add support
for those in the driver, as well as for 10-bit greyscale formats.

Signed-off-by: Stefan Muenzel <stefanmuenzel@googlemail.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/uvc/uvc_driver.c
drivers/media/video/uvc/uvcvideo.h

index 1d13172..11db262 100644 (file)
@@ -95,12 +95,27 @@ static struct uvc_format_desc uvc_fmts[] = {
                .fcc            = V4L2_PIX_FMT_UYVY,
        },
        {
-               .name           = "Greyscale (8-bit)",
+               .name           = "Greyscale 8-bit (Y800)",
                .guid           = UVC_GUID_FORMAT_Y800,
                .fcc            = V4L2_PIX_FMT_GREY,
        },
        {
-               .name           = "Greyscale (16-bit)",
+               .name           = "Greyscale 8-bit (Y8  )",
+               .guid           = UVC_GUID_FORMAT_Y8,
+               .fcc            = V4L2_PIX_FMT_GREY,
+       },
+       {
+               .name           = "Greyscale 10-bit (Y10 )",
+               .guid           = UVC_GUID_FORMAT_Y10,
+               .fcc            = V4L2_PIX_FMT_Y10,
+       },
+       {
+               .name           = "Greyscale 12-bit (Y12 )",
+               .guid           = UVC_GUID_FORMAT_Y12,
+               .fcc            = V4L2_PIX_FMT_Y12,
+       },
+       {
+               .name           = "Greyscale 16-bit (Y16 )",
                .guid           = UVC_GUID_FORMAT_Y16,
                .fcc            = V4L2_PIX_FMT_Y16,
        },
index 7c3d082..3764040 100644 (file)
 #define UVC_GUID_FORMAT_Y800 \
        { 'Y',  '8',  '0',  '0', 0x00, 0x00, 0x10, 0x00, \
         0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y8 \
+       { 'Y',  '8',  ' ',  ' ', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y10 \
+       { 'Y',  '1',  '0',  ' ', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
+#define UVC_GUID_FORMAT_Y12 \
+       { 'Y',  '1',  '2',  ' ', 0x00, 0x00, 0x10, 0x00, \
+        0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
 #define UVC_GUID_FORMAT_Y16 \
        { 'Y',  '1',  '6',  ' ', 0x00, 0x00, 0x10, 0x00, \
         0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}