[libcamera-devel,RFC,v2,0/5] Report available test pattern modes
mbox series

Message ID 20210413075013.3069213-1-hiroh@chromium.org
Headers show
Series
  • Report available test pattern modes
Related show

Message

Hirokazu Honda April 13, 2021, 7:50 a.m. UTC
This patch series aims that Android HAL client can acquire
available test pattern modes.

The proper solution is the following:
0.) Define libcamera test pattern control values.
1.) Add menu support to controls.
2.) V4L2Device store all supported test pattern values with controls.
3.) CameraSensor gets the test pattern values (name, etc) via
V4L2Device::controls().
4.) CameraSensor converts them to libcamera test pattern control
values by using a conversion table in CameraSensorDatabase
5.) IPU3 reports the libcamera test pattern control values to Android HAL.
6.) Android HAL convers the libcamera test pattern control values to
Android test pattern values.

Right now, this patch series contains (1) - (5).
Note that I would rather split this to multiple patch series
later once this solution is approved by reviewers.

Hirokazu Honda (5):
  libcamera: Controls: Add ControlTypeMenu
  libcamera: V4L2Device: Support v4l2 menu control
  libcamera: SensorDatabase: Adds table of v4l2 name and test pattern
  libcamera: CameraSensor: Attach available test pattern modes
  libcamera: pipeline: ipu3: Report available sensor test pattern mode

 include/libcamera/controls.h                 |  28 +++++
 include/libcamera/internal/camera_sensor.h   |   2 +
 include/libcamera/internal/sensor_database.h |   2 +
 include/libcamera/internal/v4l2_controls.h   |   1 +
 include/libcamera/internal/v4l2_device.h     |   3 +
 src/libcamera/camera_sensor.cpp              |  38 +++++++
 src/libcamera/controls.cpp                   |   7 ++
 src/libcamera/pipeline/ipu3/ipu3.cpp         |  12 +++
 src/libcamera/sensor_database.cpp            |  37 ++++++-
 src/libcamera/v4l2_controls.cpp              |  10 +-
 src/libcamera/v4l2_device.cpp                | 104 ++++++++++++++++++-
 11 files changed, 235 insertions(+), 9 deletions(-)

--
2.31.1.295.g9ea45b61b8-goog