linux webcam 驱动默认仅支持YUY2 和 MJPG 两种格式,这也是大部分USB摄像头和应用支持的格式
下面讲讲如何添加新的格式支持:
(1)修改kernel\drivers\usb\gadget\function\uvc_v4l2.c
添加新的格式支持,这里新增了H264、NV12和RGB565
static struct uvc_format uvc_formats[] = {
{ 16, V4L2_PIX_FMT_YUYV },
{ 0, V4L2_PIX_FMT_MJPEG },
{ 0, V4L2_PIX_FMT_H264 },//
{ 16, V4L2_PIX_FMT_NV12 },
{ 0, V4L2_PIX_FMT_RGB565 },
};
(2)
修改kernel\drivers\usb\gadget\legacy\webcam.c
添加对新的格式的描述
H264
/* UVC1.1 H264 descriptors */
static const struct uvc_format_frame_based uvc_format_based_h264 = {
.bLength = UVC_DT_FORMAT_FRAME_BASED_SIZE,
.bDescriptorType = USB_DT_CS_INTERFACE,
.bDescriptorSubType = UVC_VS_F