[libcamera-devel] [PATCH v3 00/23] Internal controls, sensor delays and IPA rework
Jacopo Mondi
jacopo at jmondi.org
Thu Jun 30 15:38:39 CEST 2022
Based on the previous v2, this new version reworks slightly the first part
of the series and on top, removes usage of V4L2 controls from the IPA.
The logical sequence of patches is:
- Introduce internal controls
- Create src/libcamera/camera_sensor
- Introduce sensor control delays
- Move delayed controls in CameraSensor
- Make the CameraSensor control interface use libcamera controls
- Make the IPA module use libcamera controls
- Similar adjustments to the CameraLens class
This work is only performed on IPU3, RkISP1 should be similarly reworked after
the work here has been validated.
Jacopo Mondi (23):
libcamera: control_ids: Add 'internal' argument
libcamera: control_ids: Separate the id numerical space
libcamera: Introduce internal controls
libcamera: control_serializer: Support internal controls
libcamera: Add src/libcamera/camera_sensor directory
libcamera: camera_sensor: Copy CameraSensorHelper
libcamera: camera_sensor: Rename the control interface
libcamera: camera_sensor: Initialize controls
libcamera: camera_sensor_properties: Add sensor delays
libcamera: camera_sensor: Initialize delayed controls
libcamera: camera_sensor: Expose DelayedControls interface
libcamera: ipu3: Drop DelayedControls
libcamera: camera_sensor: Cache the sensor configuration
libcamera: camera_sensor: Translate libcamera/V4L2 controls
libcamera: ipu3: Initialize controls in the pipeline
libcamera: IPACameraSensorInfo: Add VBLANK
ipa: ipu3: Configure IPA with libcamera controls
ipa: ipu3: Use an up to date lineDuration
ipa: ipu3: Rework IPAIPU3::processStatsBuffer()
ipa: ipu3: Make algorithms use libcamera controls
ipa: ipu3: Add and use LensFocusAbsolute control
libcamera: camera_lens: Expose libcamera control limits
libcamera: Move camera_lens.cpp in src/libcamera/camera_sensor
include/libcamera/control_ids.h.in | 6 +-
include/libcamera/internal/camera_lens.h | 5 +-
include/libcamera/internal/camera_sensor.h | 25 +-
.../libcamera/internal/camera_sensor_helper.h | 93 ++++
.../internal/camera_sensor_properties.h | 4 +
include/libcamera/internal/meson.build | 16 +
include/libcamera/ipa/core.mojom | 6 +
include/libcamera/ipa/ipa_controls.h | 1 +
include/libcamera/ipa/ipu3.mojom | 11 +-
src/ipa/ipu3/algorithms/agc.cpp | 12 +-
src/ipa/ipu3/ipa_context.cpp | 14 +-
src/ipa/ipu3/ipa_context.h | 9 +-
src/ipa/ipu3/ipu3.cpp | 236 +++------
.../{ => camera_sensor}/camera_lens.cpp | 33 +-
.../{ => camera_sensor}/camera_sensor.cpp | 283 +++++++++-
.../camera_sensor/camera_sensor_helper.cpp | 487 ++++++++++++++++++
.../camera_sensor_properties.cpp | 40 ++
src/libcamera/camera_sensor/meson.build | 8 +
src/libcamera/control_ids.cpp.in | 12 +-
src/libcamera/control_serializer.cpp | 6 +
src/libcamera/internal_control_ids.yaml | 40 ++
src/libcamera/meson.build | 21 +-
src/libcamera/pipeline/ipu3/ipu3.cpp | 73 ++-
.../pipeline/raspberrypi/raspberrypi.cpp | 14 +-
src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +-
src/libcamera/pipeline/vimc/vimc.cpp | 8 +-
utils/gen-controls.py | 24 +-
27 files changed, 1195 insertions(+), 294 deletions(-)
create mode 100644 include/libcamera/internal/camera_sensor_helper.h
rename src/libcamera/{ => camera_sensor}/camera_lens.cpp (81%)
rename src/libcamera/{ => camera_sensor}/camera_sensor.cpp (75%)
create mode 100644 src/libcamera/camera_sensor/camera_sensor_helper.cpp
rename src/libcamera/{ => camera_sensor}/camera_sensor_properties.cpp (81%)
create mode 100644 src/libcamera/camera_sensor/meson.build
create mode 100644 src/libcamera/internal_control_ids.yaml
--
2.36.1
More information about the libcamera-devel
mailing list