【发布时间】:2016-09-19 04:01:50
【问题描述】:
我正在学习通过 v4l2-ctl 配置视频设备的 v4l2 API。很久以前的代码示例真的已经过时了,一些定义不再起作用。在 v4l2-utils 中显示了一种从内核请求 API 的所有内容的新方法。我正在尝试将 v4l2-utils 中的一些代码合并到我的代码中。但是,我从编译器收到一个错误:
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,但是当我指定该文件时不包含该文件:
#include <linux/videodev2.h>
让编译器包含正确文件的巫术是什么?
我一直在研究 v4l2-utils 源代码,但无法弄清楚。
非常感谢。
【问题讨论】:
标签: c++ video linux-kernel v4l2