uvc的linux driver分为host侧和gadget侧两个driver。host侧的driver在v4l2框架下,而设备侧的driver在usb/gadget文件夹下。gadget侧的uvc driver,利用v4l2框架去注册video_device,向应用层提供调用接口。同时,它完成v4l2 video buffer拷贝到usb request下的buffer下,然后利用uvc实现的协议进行video的传输,可以传输不压缩的yuv数据,也可以传输经过H.264压缩过的视频数据。
下面讲解一下usb gadget uvc driver,即webcam的实现code。
一,uvc涉及的文件
二,uvc device 的定义