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_FORMAT_FRAME_BASED,
.bFormatIndex = 3,//第三种格式
.bNumFrameDescriptors = 3,//代表有三个分辨率,以实际情况修改
.guidFormat = {
'H', '2', '6', '4', 0x00, 0x00, 0版权声明:本文为u013463707原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。