UVC webcam添加H264 NV12等格式支持

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版权协议,转载请附上原文出处链接和本声明。