本文共 1314 字,大约阅读时间需要 4 分钟。
本章主要实现myuvc_vidioc_streamon()函数,即启动视频传输的功能,其中涉及到对USB摄像头的参数设置。具体来说,向USB摄像头设置参数分为以下三部分:测试参数、获取参数和设置参数。
调用myuvc_try_streaming_params()函数,测试需要设置的参数。该函数通过向USB摄像头发送特定的控制消息(SET_CUR),测试设备是否能够接收并处理这些参数。由于并非真正设置参数,而是用于枚举和验证,函数中使用VS_PROBE_CONTROL标志。
调用myuvc_get_streaming_params()函数,获取USB摄像头当前使用的参数。该函数通过发送GET_CUR控制消息,读取设备发送的当前参数信息,并存储到data缓存空间中,最后将这些信息填充到myuvc_streaming_control结构体中。
调用myuvc_set_streaming_params()函数,将获取到的参数重新设置到USB摄像头。与获取参数函数类似,该函数发送SET_CUR控制消息,但使用VS_COMMIT_CONTROL标志,表示对参数的正式设置。
每个USB接口中有多个设置(setting),需要根据端点能传输的最大带宽容量选择合适的设置。具体步骤如下:
myuvc_try_streaming_params()、myuvc_get_streaming_params()和myuvc_set_streaming_params()函数均通过usb_control_msg()函数发送控制消息,实现参数的测试、获取和设置。具体操作如下:
通过以上实现,完成了从参数设置到视频流传输的完整流程,确保了USB摄像头的稳定工作和高效数据传输。
转载地址:http://rqme.baihongyu.com/