UVC 驱动整体调用流程:
/* 打开设备描述符 */
1. open:
uvc_v4l2_open
/* 查询设备属性 */
2. VIDIOC_QUERYCAP
if (video->streaming->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
cap->capabilities = V4L2_CAP_VIDEO_CAPTURE
| V4L2_CAP_STREAMING;
else
cap->capabilities = V4L2_CAP_VIDEO_OUTPUT
| V4L2_CAP_STREAMING;
/* 枚举设备支持的格式 */
3. VIDIOC_ENUM_FMT
format = &video->streaming->format[fmt->index];
/* 得到设备当前所使用的 format 与 frame */
4. VIDIOC_G_FMT
uvc_v4l2_get_format
struct uvc_format *format = video->streaming->cur_format;