[libcamera-devel] [RFC PATCH v4 00/21] Preliminary FULL plumbing
Paul Elder
paul.elder at ideasonboard.com
Fri Jul 16 12:56:10 CEST 2021
This series depends on "android: Drive-by cleanups".
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)
New in v3, 1/21 adds a constructor for ControlInfo that takes boolean
values. In v4, this has been upgraded so that it actually works.
New in v4, 2/21 adds convenience functions to CameraMetadata, and 3/21
fixes some templates in CameraMetadata.
Patch 5/21 has the plumbing for capability detection. New in v4, at the
end we tally up all the requirements to enable capabilities, instead of
turning them off as we set the static metadata. This cleans up the code
a lot
New in v3, patch 6/21 adds helpers for setting android metadata for
libcamera controls, to help keep the HAL capability tracking cleaner.
New in v4, patch 7/21 moves static and request and result keys into a
set and member variable of CameraCapabilities, to ease adding new
controls later.
New in v4, patch 8/21 adds skeletal manual and still request templates.
Patches 9/21 to 12/21 add the necessary controls.
Patches 9/21 and 13/21 to 16/21 plumb the controls into the HAL. They all
plumb into the static metadata, and only a few into the result metadata.
In v4, they are also plumbed into processControls and result metadata,
though not yet to the manual and still templates.
Patches 17/21 to 21/21 plumb the controls into the IPU3 pipeline
handler.
I want review focused on the first half, patches 1/21 to 8/21, because
that is the foundation that the rest is built on top of. I'm hoping to
merge them before the other half.
Paul Elder (21):
controls: Add boolean constructor for ControlInfo
android: metadata: Add hasEntry and entryContains
android: metadata: Fix addEntry template type
android: jpeg: get ISO from SENSOR_SENSITIVITY
android: Add infrastructure for determining capabilities and hardware
level
android: Add helpers for setting android metadata from libcamera
controls
android: capabilities: Make keys list into set and member variable
android: Add skeletal still and manual request templates
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
pipeline: ipu3: Set AeEnable ControlInfo
pipeline: ipu3: Set AeLock ControlInfo
pipeline: ipu3: Set AwbMode ControlInfo
pipeline: ipu3: Set AwbLock ControlInfo
include/libcamera/controls.h | 2 +
include/libcamera/ipa/raspberrypi.h | 1 -
src/android/camera_capabilities.cpp | 642 +++++++++++++++++------
src/android/camera_capabilities.h | 20 +
src/android/camera_device.cpp | 43 +-
src/android/camera_metadata.cpp | 21 +
src/android/camera_metadata.h | 7 +-
src/android/jpeg/post_processor_jpeg.cpp | 5 +-
src/ipa/raspberrypi/raspberrypi.cpp | 32 +-
src/ipa/rkisp1/rkisp1.cpp | 13 +-
src/libcamera/control_ids.yaml | 220 +++++---
src/libcamera/controls.cpp | 28 +
src/libcamera/pipeline/ipu3/ipu3.cpp | 5 +
test/controls/control_info.cpp | 33 ++
test/controls/control_list.cpp | 6 +-
15 files changed, 786 insertions(+), 292 deletions(-)
--
2.27.0
More information about the libcamera-devel
mailing list