aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Manley <will@williammanley.net>2014-12-08 13:57:58 -0500
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-12-23 06:08:26 -0500
commit1b8dc32286a1a4fb73cfc7793ef103f3993a6478 (patch)
tree3be87a60995fff7f9c1e1d2f58af8b91d62af8ab
parent5fb3f55504d5d9b6ca97131091707afd351fe1dc (diff)
[media] uvcvideo: Add GUID for BGR 8:8:8
The Magewell XI100DUSB-HDMI[1] video capture device reports the pixel format "e436eb7d-524f-11ce-9f53-0020af0ba770". This is its GUID for BGR 8:8:8. The UVC 1.5 spec[2] only defines GUIDs for YUY2, NV12, M420 and I420. This seems to be an extension documented in the Microsoft Windows Media Format SDK[3] - or at least the Media Format SDK was the only hit that Google gave when searching for the GUID. This Media Format SDK defines this GUID as corresponding to `MEDIASUBTYPE_RGB24`. Note though, the XI100DUSB outputs BGR e.g. byte-reversed. I don't know if its the capture device in error or Microsoft mean BGR when they say RGB. [1]: http://www.magewell.com/hardware/dongles/xi100dusb-hdmi/xi100dusb-hdmi_features.html?lang=en [2]: http://www.usb.org/developers/docs/devclass_docs/USB_Video_Class_1_5.zip [3]: http://msdn.microsoft.com/en-gb/library/windows/desktop/dd757532(v=vs.85).aspx Signed-off-by: William Manley <will@williammanley.net> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/usb/uvc/uvc_driver.c5
-rw-r--r--drivers/media/usb/uvc/uvcvideo.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index 6a4b0b8cd270..cf27006c29dc 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -138,6 +138,11 @@ static struct uvc_format_desc uvc_fmts[] = {
138 .fcc = V4L2_PIX_FMT_RGB565, 138 .fcc = V4L2_PIX_FMT_RGB565,
139 }, 139 },
140 { 140 {
141 .name = "BGR 8:8:8 (BGR3)",
142 .guid = UVC_GUID_FORMAT_BGR3,
143 .fcc = V4L2_PIX_FMT_BGR24,
144 },
145 {
141 .name = "H.264", 146 .name = "H.264",
142 .guid = UVC_GUID_FORMAT_H264, 147 .guid = UVC_GUID_FORMAT_H264,
143 .fcc = V4L2_PIX_FMT_H264, 148 .fcc = V4L2_PIX_FMT_H264,
diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h
index f0a04b532ede..c63e5b55e143 100644
--- a/drivers/media/usb/uvc/uvcvideo.h
+++ b/drivers/media/usb/uvc/uvcvideo.h
@@ -109,6 +109,9 @@
109#define UVC_GUID_FORMAT_RGBP \ 109#define UVC_GUID_FORMAT_RGBP \
110 { 'R', 'G', 'B', 'P', 0x00, 0x00, 0x10, 0x00, \ 110 { 'R', 'G', 'B', 'P', 0x00, 0x00, 0x10, 0x00, \
111 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} 111 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
112#define UVC_GUID_FORMAT_BGR3 \
113 { 0x7d, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
114 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}
112#define UVC_GUID_FORMAT_M420 \ 115#define UVC_GUID_FORMAT_M420 \
113 { 'M', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \ 116 { 'M', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \
114 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} 117 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}