aboutsummaryrefslogtreecommitdiffstats
path: root/utils/v4l2-ctl/v4l2-ctl-meta.cpp
diff options
context:
space:
mode:
authorVandana BN <bnvandana@gmail.com>2019-10-15 18:00:02 +0530
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2019-10-24 16:56:09 +0200
commit1124bb49ad93a777430f566f2c93edcddfabf13e (patch)
treed90ba6a0733420c8559d83415e280f9b31fcb003 /utils/v4l2-ctl/v4l2-ctl-meta.cpp
parentfc60175e5d5dbcbdb4e420bb58e6529e4b9e61a2 (diff)
v4l2-ctl: support for metadata output
Adds support to test metadata output format V4L2_META_FMT_VIVID. Signed-off-by: Vandana BN <bnvandana@gmail.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'utils/v4l2-ctl/v4l2-ctl-meta.cpp')
-rw-r--r--utils/v4l2-ctl/v4l2-ctl-meta.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/v4l2-ctl/v4l2-ctl-meta.cpp b/utils/v4l2-ctl/v4l2-ctl-meta.cpp
index eae7438f..b1288297 100644
--- a/utils/v4l2-ctl/v4l2-ctl-meta.cpp
+++ b/utils/v4l2-ctl/v4l2-ctl-meta.cpp
@@ -139,10 +139,18 @@ struct vivid_uvc_meta_buf {
#define UVC_STREAM_SCR (1 << 3)
#define UVC_STREAM_PTS (1 << 2)
+struct vivid_meta_out_buf {
+ __u16 brightness;
+ __u16 contrast;
+ __u16 saturation;
+ __s16 hue;
+};
+
void print_meta_buffer(FILE *f, cv4l_buffer &buf, cv4l_fmt &fmt, cv4l_queue &q)
{
struct vivid_uvc_meta_buf *vbuf;
int buf_off = 0;
+ struct vivid_meta_out_buf *vbuf_out;
switch (fmt.g_pixelformat()) {
case V4L2_META_FMT_UVC:
@@ -164,5 +172,28 @@ void print_meta_buffer(FILE *f, cv4l_buffer &buf, cv4l_fmt &fmt, cv4l_queue &q)
le16toh(*(__u16*)(vbuf->buf + buf_off + 4)));
fprintf(f, "\n");
break;
+ case V4L2_META_FMT_VIVID:
+ fprintf(f, "VIVID:");
+ vbuf_out = (vivid_meta_out_buf *)q.g_dataptr(buf.g_index(), 0);
+
+ fprintf(f, " brightness: %u contrast: %u saturation: %u hue: %d\n",
+ vbuf_out->brightness, vbuf_out->contrast,
+ vbuf_out->saturation, vbuf_out->hue);
+ break;
+ }
+}
+
+void meta_fillbuffer(cv4l_buffer &buf, cv4l_fmt &fmt, cv4l_queue &q)
+{
+ struct vivid_meta_out_buf *vbuf;
+
+ switch (fmt.g_pixelformat()) {
+ case V4L2_META_FMT_VIVID:
+ vbuf = (vivid_meta_out_buf *)q.g_dataptr(buf.g_index(), 0);
+ vbuf->brightness = buf.g_sequence() % 192 + 64;
+ vbuf->contrast = (buf.g_sequence() + 10) % 192 + 64;
+ vbuf->saturation = (buf.g_sequence() + 20) % 256;
+ vbuf->hue = buf.g_sequence() % 257 - 128;
+ break;
}
}

Privacy Policy