[media] v4l2-ctrls: arrays are also considered compound controls
Array controls weren't skipped when only V4L2_CTRL_FLAG_NEXT_CTRL was provided (so no V4L2_CTRL_FLAG_NEXT_COMPOUND was set). This is wrong since arrays are also considered compound controls (i.e. with more than one value), and applications that do not know about arrays will not be able to handle such controls. Fix the test to include arrays. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reported-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Cc: <stable@vger.kernel.org> # for v3.17 and up Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Родитель
5ba0e2c3ad
Коммит
35204e2e84
|
@ -2498,7 +2498,7 @@ int v4l2_query_ext_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_query_ext_ctr
|
|||
/* We found a control with the given ID, so just get
|
||||
the next valid one in the list. */
|
||||
list_for_each_entry_continue(ref, &hdl->ctrl_refs, node) {
|
||||
is_compound =
|
||||
is_compound = ref->ctrl->is_array ||
|
||||
ref->ctrl->type >= V4L2_CTRL_COMPOUND_TYPES;
|
||||
if (id < ref->ctrl->id &&
|
||||
(is_compound & mask) == match)
|
||||
|
@ -2512,7 +2512,7 @@ int v4l2_query_ext_ctrl(struct v4l2_ctrl_handler *hdl, struct v4l2_query_ext_ctr
|
|||
is one, otherwise the first 'if' above would have
|
||||
been true. */
|
||||
list_for_each_entry(ref, &hdl->ctrl_refs, node) {
|
||||
is_compound =
|
||||
is_compound = ref->ctrl->is_array ||
|
||||
ref->ctrl->type >= V4L2_CTRL_COMPOUND_TYPES;
|
||||
if (id < ref->ctrl->id &&
|
||||
(is_compound & mask) == match)
|
||||
|
|
Загрузка…
Ссылка в новой задаче