我正在学习通过v4l2-ctl配置视频设备的v4l2 API。几年前的代码样本实际上已经过时,一些定义不再适用。有一种从v4l2-utils中显示的kerhel请求所有API的新方法。我试图将v4l2-utils的一些代码合并到我的代码中。然而,我是从编译器得到一个错误:缺少包括从v4l2,Linux vs uapi/linux
camera.hpp:1038:8: error: 'struct v4l2_ext_controls' has no member named 'which'
ctrls.which = V4L2_CTRL_ID2WHICH(qctrl.id);
和:
camera.hpp:1038:43: error: 'V4L2_CTRL_ID2WHICH' was not declared in this scope
ctrls.which = V4L2_CTRL_ID2WHICH(qctrl.id);
该字段和定义位于Linux源代码树中的一个文件中:/usr/src/linux-4.6.3-gentoo/include/uapi/linux/videodev2.h,但该文件不包含在I指定:
#include <linux/videodev2.h>
什么是伏都教让编译器包含正确的文件?
我一直在研究v4l2-utils源代码,但无法弄清楚。
非常感谢。