[libcamera-devel,RFC,v3,00/16] Preliminary FULL plumbing
mbox series

Message ID 20210702103800.41291-1-paul.elder@ideasonboard.com
Headers show
Series
  • Preliminary FULL plumbing
Related show

Message

Paul Elder July 2, 2021, 10:37 a.m. UTC
This patch series adds controls and plumbing necessary for 5 controls to
satisfy FULL requirements:
- AeLock
- AeEnable (AE_MODE)
- AwbLock
- AwbMode
- MaxLatency (SYNC_MAX_LATENCY)

v2 has been skipped.

New in v3, 1/16 adds a constructor for ControlInfo that takes boolean
values.

Patch 2/16 has the plumbing for capability detection.

New in v3, patch 3/16 adds helpers for setting android metadata for
libcamera controls, to help keep the HAL capability tracking cleaner.

Patches 4/16 to 7/16 add the necessary controls.

Patches 4/16 and 8/16 to 11/16 plumb the controls into the HAL. They all
plumb into the static metadata, and only a few into the result metadata.

Patches 12/16 to 16/16 plumb the controls into the IPU3 pipeline
handler.

As for IPA capability discovery, I think we can simply do an extension
of what I have on 12/16 to 16/16 on IPU3, just one layer over.

It was hard to gauge the desires for the lock controls, so there aren't
really any changes there.


Paul Elder (16):
  controls: Add boolean constructor for ControlInfo
  android: Add infrastructure for determining capabilities and hardware
    level
  android: Add helpers for setting android metadata from libcamera
    controls
  android, controls: Add and plumb MaxLatency control
  controls: Replace AeLocked with AeState, and add AeLock
  controls: Replace AwbEnable with AwbMode
  controls: Replace AwbLocked with AwbState, and add AwbLock
  android: Plumb AeEnable control
  android: Plumb AeLock control
  android: Plumb AwbMode control
  android: Plumb AwbLock control
  pipeline: ipu3: Set MaxLatency ControlInfo
  FULL: pipeline: ipu3: Set AeEnable ControlInfo
  pipeline: ipu3: Set AeLock ControlInfo
  pipeline: ipu3: Set AwbMode ControlInfo
  pipeline: ipu3: Set AwbLock ControlInfo

 include/libcamera/controls.h         |   1 +
 include/libcamera/ipa/raspberrypi.h  |   1 -
 src/android/camera_capabilities.cpp  | 266 +++++++++++++++++++++++----
 src/android/camera_device.cpp        |   6 +-
 src/ipa/raspberrypi/raspberrypi.cpp  |  32 ++--
 src/ipa/rkisp1/rkisp1.cpp            |  13 +-
 src/libcamera/control_ids.yaml       | 220 +++++++++++++---------
 src/libcamera/controls.cpp           |  20 ++
 src/libcamera/pipeline/ipu3/ipu3.cpp |   6 +
 test/controls/control_list.cpp       |   6 +-
 10 files changed, 424 insertions(+), 147 deletions(-)