diff options
author | William Manley <will@williammanley.net> | 2014-12-08 13:57:58 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-12-23 06:08:26 -0500 |
commit | 1b8dc32286a1a4fb73cfc7793ef103f3993a6478 (patch) | |
tree | 3be87a60995fff7f9c1e1d2f58af8b91d62af8ab | |
parent | 5fb3f55504d5d9b6ca97131091707afd351fe1dc (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.c | 5 | ||||
-rw-r--r-- | drivers/media/usb/uvc/uvcvideo.h | 3 |
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} |