[media] videodev2.h: add struct v4l2_query_ext_ctrl and VIDIOC_QUERY_EXT_CTRL
authorHans Verkuil <hans.verkuil@cisco.com>
Tue, 10 Jun 2014 07:14:50 +0000 (04:14 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 17 Jul 2014 13:38:44 +0000 (10:38 -0300)
Add a new struct and ioctl to extend the amount of information you can
get for a control.

The range is now a s64 type, and array dimensions and element size can be
reported through nr_of_dims/dims/elems/elem_size.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
include/uapi/linux/videodev2.h

index 438c4a65c5b201c73a4d249848379ea9cbc3e5dc..0297980fe49162ca4ef35af4e21ff0829b44aaa0 100644 (file)
@@ -1269,6 +1269,7 @@ struct v4l2_ext_controls {
 #define V4L2_CTRL_ID_MASK                (0x0fffffff)
 #define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL)
 #define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
+#define V4L2_CTRL_MAX_DIMS       (4)
 
 enum v4l2_ctrl_type {
        V4L2_CTRL_TYPE_INTEGER       = 1,
@@ -1298,6 +1299,23 @@ struct v4l2_queryctrl {
        __u32                reserved[2];
 };
 
+/*  Used in the VIDIOC_QUERY_EXT_CTRL ioctl for querying extended controls */
+struct v4l2_query_ext_ctrl {
+       __u32                id;
+       __u32                type;
+       char                 name[32];
+       __s64                minimum;
+       __s64                maximum;
+       __u64                step;
+       __s64                default_value;
+       __u32                flags;
+       __u32                elem_size;
+       __u32                elems;
+       __u32                nr_of_dims;
+       __u32                dims[V4L2_CTRL_MAX_DIMS];
+       __u32                reserved[32];
+};
+
 /*  Used in the VIDIOC_QUERYMENU ioctl for querying menu items */
 struct v4l2_querymenu {
        __u32           id;
@@ -2011,6 +2029,8 @@ struct v4l2_create_buffers {
    Never use these in applications! */
 #define VIDIOC_DBG_G_CHIP_INFO  _IOWR('V', 102, struct v4l2_dbg_chip_info)
 
+#define VIDIOC_QUERY_EXT_CTRL  _IOWR('V', 103, struct v4l2_query_ext_ctrl)
+
 /* Reminder: when adding new ioctls please add support for them to
    drivers/media/video/v4l2-compat-ioctl32.c as well! */