[libcamera-devel,00/11] Adda support for V4L2 array control and strings
mbox series

Message ID 20200309162414.720306-1-jacopo@jmondi.org
Headers show
Series
  • Adda support for V4L2 array control and strings
Related show

Message

Jacopo Mondi March 9, 2020, 4:24 p.m. UTC
This series includes two parts:
- Support for controls with string type from Laurent
- Support for V4L2 U8 controls with paylod from me.

The series starts with a rename of ControlRange to ControlInfo as for string
controls 'range' is not appropriate, then support for controls with type
std::string is added to the control and control serializer frameworks.

After a small fix for the V4L2Device::ioctl() return code, the series enables
reading/writing V4L2 controls with type V4L2_CTRL_TYPE_U8 and enable their
enumeration in the v4l2 control framework.

A test for both use cases is added.

Series is based on the latest master branch.

Thanks
   j

Jacopo Mondi (7):
  libcamera: v4l2_controls: Fix usage of strerror()
  libcamera: v4l2_controls: Cache query control information
  libcamera: v4l2_device: Support writing array U8 controls
  licamera: v4l2_device: Support reading U8 array controls
  libcamera: v4l2_controls: Support U8 array controls
  libcamera: v4l2_device: Enable enumeration of U8 controls
  test: v4l2_videodevice: Test U8 array controls

Laurent Pinchart (4):
  libcamera: controls: Name all ControlInfoMap instance variables
    infoMap
  libcamera: controls: Rename ControlRange to ControlInfo
  libcamera: controls: Add support for string controls
  test: controls: control_value: Test string control type

 include/ipa/ipa_controls.h                 |  2 +-
 include/libcamera/controls.h               | 48 +++++++++----
 src/libcamera/control_serializer.cpp       | 80 +++++++++++++--------
 src/libcamera/controls.cpp                 | 81 ++++++++++++++-------
 src/libcamera/gen-controls.py              | 18 ++---
 src/libcamera/include/control_serializer.h | 10 +--
 src/libcamera/include/v4l2_controls.h      |  4 +-
 src/libcamera/include/v4l2_device.h        |  1 +
 src/libcamera/ipa_controls.cpp             | 38 +++++-----
 src/libcamera/pipeline/uvcvideo.cpp        |  4 +-
 src/libcamera/pipeline/vimc.cpp            |  4 +-
 src/libcamera/v4l2_controls.cpp            | 39 ++++++----
 src/libcamera/v4l2_device.cpp              | 82 +++++++++++++++++-----
 test/controls/control_info.cpp             | 73 ++++++-------------
 test/controls/control_info_map.cpp         | 82 ++++++++++++++++++++++
 test/controls/control_range.cpp            | 51 --------------
 test/controls/control_value.cpp            | 22 ++++++
 test/controls/meson.build                  |  8 +--
 test/serialization/serialization_test.cpp  |  4 +-
 test/v4l2_videodevice/controls.cpp         | 47 ++++++++++---
 20 files changed, 437 insertions(+), 261 deletions(-)
 create mode 100644 test/controls/control_info_map.cpp
 delete mode 100644 test/controls/control_range.cpp

--
2.25.0