Download raw body.
sys/uvideo: sync GUID to pixelformat mappngs with Linux 6.13-rc7
tech@
I'd like to sync mappings of GUID to pixel format with Linux 6.13-rc7.
Sources for used data:
- https://github.com/torvalds/linux/blob/v6.13-rc7/drivers/media/common/uvc.c
- https://github.com/torvalds/linux/blob/v6.13-rc7/include/linux/usb/uvc.h
Ok?
Index: sys/dev/usb/uvideo.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uvideo.c,v
diff -u -p -r1.235 uvideo.c
--- sys/dev/usb/uvideo.c 15 Jan 2025 20:34:50 -0000 1.235
+++ sys/dev/usb/uvideo.c 15 Jan 2025 20:40:29 -0000
@@ -392,7 +392,24 @@ const struct uvideo_map_fmts {
{ UVIDEO_FORMAT_GUID_I420, V4L2_PIX_FMT_YUV420 },
{ UVIDEO_FORMAT_GUID_Y800, V4L2_PIX_FMT_GREY },
{ UVIDEO_FORMAT_GUID_Y8, V4L2_PIX_FMT_GREY },
+ { UVIDEO_FORMAT_GUID_D3DFMT_L8, V4L2_PIX_FMT_GREY },
{ UVIDEO_FORMAT_GUID_KSMEDIA_L8_IR, V4L2_PIX_FMT_GREY },
+ { UVIDEO_FORMAT_GUID_BY8, V4L2_PIX_FMT_SBGGR8 },
+ { UVIDEO_FORMAT_GUID_BA81, V4L2_PIX_FMT_SBGGR8 },
+ { UVIDEO_FORMAT_GUID_GBRG, V4L2_PIX_FMT_SBGGR8 },
+ { UVIDEO_FORMAT_GUID_GRBG, V4L2_PIX_FMT_SBGGR8 },
+ { UVIDEO_FORMAT_GUID_RGGB, V4L2_PIX_FMT_SBGGR8 },
+ { UVIDEO_FORMAT_GUID_RGBP, V4L2_PIX_FMT_RGB565 },
+ { UVIDEO_FORMAT_GUID_D3DFMT_R5G6B5, V4L2_PIX_FMT_RGB565 },
+ { UVIDEO_FORMAT_GUID_BGR3, V4L2_PIX_FMT_BGR24 },
+ { UVIDEO_FORMAT_GUID_BGR4, V4L2_PIX_FMT_XBGR32 },
+ { UVIDEO_FORMAT_GUID_H265, V4L2_PIX_FMT_HEVC },
+ { UVIDEO_FORMAT_GUID_RW10, V4L2_PIX_FMT_SRGGB10P },
+ { UVIDEO_FORMAT_GUID_BG16, V4L2_PIX_FMT_SBGGR16 },
+ { UVIDEO_FORMAT_GUID_GB16, V4L2_PIX_FMT_SGBRG16 },
+ { UVIDEO_FORMAT_GUID_RG16, V4L2_PIX_FMT_SGBRG16 },
+ { UVIDEO_FORMAT_GUID_INVZ, V4L2_PIX_FMT_Z16 },
+ { UVIDEO_FORMAT_GUID_INVI, V4L2_PIX_FMT_Y10 },
};
int
Index: sys/dev/usb/uvideo.h
===================================================================
RCS file: /cvs/src/sys/dev/usb/uvideo.h,v
diff -u -p -r1.62 uvideo.h
--- sys/dev/usb/uvideo.h 13 Jan 2025 15:32:36 -0000 1.62
+++ sys/dev/usb/uvideo.h 15 Jan 2025 20:40:29 -0000
@@ -316,9 +316,77 @@ struct usb_video_probe_commit {
'Y', '8', ' ', ' ', '\0', 0x00, 0x10, 0x00, \
0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+#define UVIDEO_FORMAT_GUID_D3DFMT_L8 { \
+ 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
#define UVIDEO_FORMAT_GUID_KSMEDIA_L8_IR { \
0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, \
0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_BY8 { \
+ 'B', 'Y', '8', ' ', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_BA81 { \
+ 'B', 'A', '8', '1', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_GBRG { \
+ 'G', 'B', 'R', 'G', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_GRBG { \
+ 'G', 'R', 'B', 'G', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_RGGB { \
+ 'R', 'G', 'G', 'B', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_RGBP { \
+ 'R', 'G', 'B', 'P', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_D3DFMT_R5G6B5 { \
+ 0x7b, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
+ 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70 }
+
+#define UVIDEO_FORMAT_GUID_BGR3 { \
+ 0x7d, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
+ 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70 }
+
+#define UVIDEO_FORMAT_GUID_BGR4 { \
+ 0x7e, 0xeb, 0x36, 0xe4, 0x4f, 0x52, 0xce, 0x11, \
+ 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70 }
+
+#define UVIDEO_FORMAT_GUID_H265 { \
+ 'H', '2', '6', '5', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_RW10 { \
+ 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_BG16 { \
+ 'B', 'G', '1', '6', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_GB16 { \
+ 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_RG16 { \
+ 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \
+ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 }
+
+#define UVIDEO_FORMAT_GUID_INVZ { \
+ 'I', 'N', 'V', 'Z', 0x90, 0x2d, 0x58, 0x4a, \
+ 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b }
+
+#define UVIDEO_FORMAT_GUID_INVI { \
+ 'I', 'N', 'V', 'I', 0xdb, 0x57, 0x49, 0x5e, \
+ 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f }
/*
* USB Video Payload MJPEG
--
wbr, Kirill
sys/uvideo: sync GUID to pixelformat mappngs with Linux 6.13-rc7