Initial update of v4l2-ctl and v4l2-compliance to handle the new memory flags. Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> --- Very basic, just enough to the test-media script to pass again. --- diff --git a/utils/common/v4l-helpers.h b/utils/common/v4l-helpers.h index b794ff88..6d6d818e 100644 --- a/utils/common/v4l-helpers.h +++ b/utils/common/v4l-helpers.h @@ -1521,7 +1521,7 @@ static inline int v4l_queue_reqbufs(struct v4l_fd *f, reqbufs.type = q->type; reqbufs.memory = q->memory; reqbufs.count = count; - memset(reqbufs.reserved, 0, sizeof(reqbufs.reserved)); + reqbufs.flags = 0; /* * Problem: if REQBUFS returns an error, did it free any old * buffers or not? @@ -1553,6 +1553,7 @@ static inline int v4l_queue_create_bufs(struct v4l_fd *f, createbufs.format.type = q->type; createbufs.memory = q->memory; createbufs.count = count; + createbufs.flags = 0; if (fmt) { createbufs.format = *fmt; } else { diff --git a/utils/common/v4l2-info.cpp b/utils/common/v4l2-info.cpp index 0aac8504..bca42bb4 100644 --- a/utils/common/v4l2-info.cpp +++ b/utils/common/v4l2-info.cpp @@ -206,6 +206,7 @@ static const flag_def bufcap_def[] = { { V4L2_BUF_CAP_SUPPORTS_REQUESTS, "requests" }, { V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS, "orphaned-bufs" }, { V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF, "m2m-hold-capture-buf" }, + { V4L2_BUF_CAP_SUPPORTS_CACHE_HINTS, "cache-hints" }, { 0, NULL } }; diff --git a/utils/v4l2-compliance/v4l2-test-buffers.cpp b/utils/v4l2-compliance/v4l2-test-buffers.cpp index 13d8f272..ecd7bddb 100644 --- a/utils/v4l2-compliance/v4l2-test-buffers.cpp +++ b/utils/v4l2-compliance/v4l2-test-buffers.cpp @@ -676,8 +676,9 @@ int testReqBufs(struct node *node) reqbufs.count = 0; reqbufs.type = i; reqbufs.memory = m; + reqbufs.flags = 0; fail_on_test(doioctl(node, VIDIOC_REQBUFS, &reqbufs)); - fail_on_test(check_0(reqbufs.reserved, sizeof(reqbufs.reserved))); + fail_on_test(reqbufs.flags & ~V4L2_FLAG_MEMORY_NON_CONSISTENT); q.reqbufs(node); ret = q.create_bufs(node, 1); @@ -698,7 +699,9 @@ int testReqBufs(struct node *node) node->g_fmt(crbufs.format, i); crbufs.count = 0; crbufs.memory = m; + crbufs.flags = 0; fail_on_test(doioctl(node, VIDIOC_CREATE_BUFS, &crbufs)); + fail_on_test(crbufs.flags & ~V4L2_FLAG_MEMORY_NON_CONSISTENT); fail_on_test(check_0(crbufs.reserved, sizeof(crbufs.reserved))); fail_on_test(crbufs.index != q.g_buffers());