2019-11-04 13:14:51

by Ricardo Ribalda Delgado

[permalink] [raw]
Subject: [PATCH v2 1/3] v4l2-ctl: Support query V4L2_CTRL_TYPE_AREA controls

Tested with vivid:

$ v4l2-ctl -l | grep area
area 0x0098f90b (area) : flags=has-payload

Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
---
utils/v4l2-ctl/v4l2-ctl-common.cpp | 3 +++
1 file changed, 3 insertions(+)

diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp
index 651917e7..b1c12b35 100644
--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
@@ -458,6 +458,9 @@ static void print_qctrl(int fd, struct v4l2_query_ext_ctrl *queryctrl,
queryctrl->minimum, queryctrl->maximum,
queryctrl->step, queryctrl->default_value);
break;
+ case V4L2_CTRL_TYPE_AREA:
+ printf("%31s %#8.8x (area) :", s.c_str(), queryctrl->id);
+ break;
default:
printf("%31s %#8.8x (unknown): type=%x",
s.c_str(), queryctrl->id, queryctrl->type);
--
2.24.0.rc1


2019-11-04 13:14:56

by Ricardo Ribalda Delgado

[permalink] [raw]
Subject: [PATCH v2 3/3] v4l2-ctl: Support setting V4L2_CTRL_TYPE_AREA controls

$ v4l2-ctl -d /dev/video1 -c area=123123x233

Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
---
utils/v4l2-ctl/v4l2-ctl-common.cpp | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp
index 95339561..e079c274 100644
--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
@@ -973,6 +973,10 @@ void common_set(cv4l_fd &_fd)
strncpy(ctrl.string, iter->second.c_str(), qc.maximum);
ctrl.string[qc.maximum] = 0;
break;
+ case V4L2_CTRL_TYPE_AREA:
+ sscanf(iter->second.c_str(), "%ux%u",
+ &ctrl.p_area->width, &ctrl.p_area->height);
+ break;
default:
fprintf(stderr, "%s: unsupported payload type\n",
qc.name);
--
2.24.0.rc1