[libcamera-devel] [PATCH v4 00/13] libcamera Controls

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jul 1 22:14:51 CEST 2019


Hello,

Here's the fourth version of the libcamera controls series, taken over
from Kieran (with his consent and help).

Compared to v3, no major rework has occurred. Please see individual
patches for a description of the small typo fixes, documentation updates
or small API changes.

The main API changes since v2 are

- The Value class has been renamed to ControlValue
- The ControlList class is now indexed by ControlInfo pointer instead of
  instance
- The ControlList class is constructed for a camera, and looks up
  ControlInfo from that camera
- The V4L2ControlInfo class now exposes the min and max values
- The Camera has a new method to expose all the controls it supports

Notable changes are also file renames (control_definitions.h ->
control_ids.h and control_definitions.cpp -> control_types.cpp), dynamic
query of supported controls in the UVC pipeline handler, control support
in the VIMC pipeline handler and handling of control minimum/maximum
values in the qcam proof-of-concept patch.

Todo items include

- Better documentation for the initial controls
- Integer type handling for ControlValue (see patch 03/13)

Kieran Bingham (8):
  libcamera: controls: Introduce control-related data types
  libcamera: camera: Provide a list of ControlInfo
  libcamera: request: Add a ControlList
  libcamera: pipeline: uvcvideo: Add controls support
  libcamera: test: Add ControlValue test
  libcamera: test: Add ControlInfo test
  libcamera: test: Add ControlList tests
  [PoC] QCam: Control demo: A SineWave Brightness

Laurent Pinchart (5):
  libcamera: v4l2_controls: Add min and max to V4L2ControlInfo
  libcamera: v4l2_device: Add method to retrieve all supported controls
  libcamera: controls: Extend ControlList to access controls by ID
  libcamera: controls: Add a set of initial controls
  libcamera: pipeline: vimc: Add controls support

 Documentation/Doxyfile.in                |   3 +-
 include/libcamera/camera.h               |   3 +
 include/libcamera/control_ids.h          |  41 ++
 include/libcamera/controls.h             | 138 ++++++
 include/libcamera/meson.build            |   2 +
 include/libcamera/request.h              |   3 +
 src/libcamera/camera.cpp                 |  12 +
 src/libcamera/camera_sensor.cpp          |  10 +-
 src/libcamera/controls.cpp               | 552 +++++++++++++++++++++++
 src/libcamera/gen-controls.awk           | 106 +++++
 src/libcamera/include/camera_sensor.h    |   5 +-
 src/libcamera/include/pipeline_handler.h |   4 +
 src/libcamera/include/v4l2_controls.h    |  12 +-
 src/libcamera/include/v4l2_device.h      |   9 +-
 src/libcamera/meson.build                |  11 +
 src/libcamera/pipeline/uvcvideo.cpp      | 124 ++++-
 src/libcamera/pipeline/vimc.cpp          | 107 ++++-
 src/libcamera/pipeline_handler.cpp       |  19 +
 src/libcamera/request.cpp                |  12 +-
 src/libcamera/v4l2_controls.cpp          |  19 +
 src/libcamera/v4l2_device.cpp            |  25 +-
 src/qcam/main_window.cpp                 |  29 +-
 src/qcam/main_window.h                   |   3 +
 test/controls/control_info.cpp           |  62 +++
 test/controls/control_list.cpp           | 213 +++++++++
 test/controls/control_value.cpp          |  69 +++
 test/controls/meson.build                |  13 +
 test/meson.build                         |   1 +
 28 files changed, 1557 insertions(+), 50 deletions(-)
 create mode 100644 include/libcamera/control_ids.h
 create mode 100644 include/libcamera/controls.h
 create mode 100644 src/libcamera/controls.cpp
 create mode 100755 src/libcamera/gen-controls.awk
 create mode 100644 test/controls/control_info.cpp
 create mode 100644 test/controls/control_list.cpp
 create mode 100644 test/controls/control_value.cpp
 create mode 100644 test/controls/meson.build

-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list