[libcamera-devel,v3,00/14] libcamera Controls
mbox series

Message ID 20190630233817.10130-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • libcamera Controls
Related show

Message

Laurent Pinchart June 30, 2019, 11:38 p.m. UTC
Hello,

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

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 04/14)

Kieran Bingham (9):
  libcamera: Use 'files()' function to specify gen-header.sh
  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            |   4 +-
 include/libcamera/request.h              |   3 +
 src/libcamera/camera.cpp                 |  12 +
 src/libcamera/camera_sensor.cpp          |  10 +-
 src/libcamera/controls.cpp               | 532 +++++++++++++++++++++++
 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      | 129 +++++-
 src/libcamera/pipeline/vimc.cpp          | 105 ++++-
 src/libcamera/pipeline_handler.cpp       |  19 +
 src/libcamera/request.cpp                |  15 +-
 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, 1540 insertions(+), 55 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