structv4l2_ctrl_ops{int(*g_volatile_ctrl)(structv4l2_ctrl *ctrl);int(*try_ctrl)(structv4l2_ctrl *ctrl);int(*s_ctrl)(structv4l2_ctrl *ctrl); }; 通常是需要实现s_ctrl: staticintfoo_s_ctrl(structv4l2_ctrl *ctrl){structfoo*state=container_of(ctrl->handler,structfoo, ctrl_handler);switch...
上述过程中,每一个帧缓冲区都有一个对应的状态标志变量,其中每一个比特代表一个状态 V4L2_BUF_FLAG_UNMAPPED 0B0000 V4L2_BUF_FLAG_MAPPED 0B0001 V4L2_BUF_FLAG_ENQUEUED 0B0010 V4L2_BUF_FLAG_DONE 0B0100 缓冲区的状态转化如图2所示。 图2 缓冲区的状态标志转化图...
flags & V4L2_CTRL_FLAG_SLIDER) != 0;control->flags.write_only = (qctrl.flags & V4L2_CTRL_FLAG_WRITE_ONLY) != 0;control->flags.volatile_value = (qctrl.flags & V4L2_CTRL_FLAG_VOLATILE) != 0;control->type = qctrl.type;control->max = qctrl.maximum;...
33 + int vpu_helper_g_volatile_ctrl(struct v4l2_ctrl *ctrl); 34 + void vpu_helper_get_kmp_next(const u8 *pattern, int *next, int size); 35 + int vpu_helper_kmp_search(u8 *s, int s_len, const u8 *p, int p_len, int *next); 36 + int vpu_helper_kmp_search_in_stream...
void v4l2_ctrl_auto_cluster (unsigned ncontrols, struct v4l2_ctrl **controls, u8 manual_val, bool set_volatile) EXPORT_SYMBOL (v4l2_ctrl_auto_cluster) void v4l2_ctrl_activate (struct v4l2_ctrl *ctrl, bool active) EXPORT_SYMBOL (v4l2_ctrl_activate) void v4l2_ctrl_grab (struct v4l2_ctrl *...
While VIDIOC_QUERYCTRL is limited to 32 bit min/max/step/def values for controls, the upcoming VIDIOC_QUERY_EXT_CTRL isn't. So increase the internal representation to 64 bits in preparation. http://vger.kernel.org/majordomo-info.html
(const struct v4l2_ctrl *ctrl, } } -static void std_init(const struct v4l2_ctrl *ctrl, +static void std_init(const struct v4l2_ctrl *ctrl, u32 idx, union v4l2_ctrl_ptr ptr) { switch (ctrl->type) { @@ -1207,6 +1207,14 @@ static void std_log(const struct v4l2_ctrl *ctrl)...