[PATCH 1/1] [media] uvcvideo: Add 10,12bit and alternate 8bit greyscale

2012-07-28 Thread Stefan Muenzel
Some cameras support 10bit and 12bit greyscale, or use the alternate "Y8
" FOURCC for 8bit greyscale. Add support for these.

Tested on a 12bit camera.

Signed-off-by: Stefan Muenzel 
---
 drivers/media/video/uvc/uvc_driver.c |   19 +--
 drivers/media/video/uvc/uvcvideo.h   |9 +
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/uvc/uvc_driver.c 
b/drivers/media/video/uvc/uvc_driver.c
index 1d13172..11db262 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -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,
},
diff --git a/drivers/media/video/uvc/uvcvideo.h 
b/drivers/media/video/uvc/uvcvideo.h
index 7c3d082..3764040 100644
--- a/drivers/media/video/uvc/uvcvideo.h
+++ b/drivers/media/video/uvc/uvcvideo.h
@@ -79,6 +79,15 @@
 #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}
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 1/1] [media] uvcvideo: Add 10,12bit and alternate 8bit greyscale

2012-07-28 Thread Stefan Muenzel
Some cameras support 10bit and 12bit greyscale, or use the alternate Y8
 FOURCC for 8bit greyscale. Add support for these.

Tested on a 12bit camera.

Signed-off-by: Stefan Muenzel stefanmuen...@googlemail.com
---
 drivers/media/video/uvc/uvc_driver.c |   19 +--
 drivers/media/video/uvc/uvcvideo.h   |9 +
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/uvc/uvc_driver.c 
b/drivers/media/video/uvc/uvc_driver.c
index 1d13172..11db262 100644
--- a/drivers/media/video/uvc/uvc_driver.c
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -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,
},
diff --git a/drivers/media/video/uvc/uvcvideo.h 
b/drivers/media/video/uvc/uvcvideo.h
index 7c3d082..3764040 100644
--- a/drivers/media/video/uvc/uvcvideo.h
+++ b/drivers/media/video/uvc/uvcvideo.h
@@ -79,6 +79,15 @@
 #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}
-- 
1.7.10.4

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/