[libcamera-devel] [PATCH v4 0/8] libcamera: Add helper for controls that take effect with a delay
Niklas Söderlund
niklas.soderlund at ragnatech.se
Tue Dec 15 01:48:03 CET 2020
Hello,
This series adds a new helper class to libcamera-core based on the
StaggerdCtrl principle from the Raspberry Pi pipeline handler. The new
helper matches perfectly the RPi implementation and can therefore
replace the pipeline specific implementation. There are slight changes
in the API of the two but noting preventing it to be a drop in
replacement.
The major new addition to the DelayedControls implementation is the
ability to queue controls ahead of time. This allows the concept of
pipeline depth we already have for buffers to be extended to controls.
Patch 1/8 and 2/8 adds the new core helper and its unit test. Patch 3/8
and 4/8 replaces StaggerdCtrl with DelayedControls in the Raspberry Pi
pipeline handler. Patch 5/8 adds an accessors to CameraSensor. And last
6/8 - 8/8 make use of the new helper in the RkISP1 pipeline to
completely remove another local helper (Timeline).
The RkISP1 IPA feels much snappier after this change but this is
anecdotal and no real measurements have been done as the RkISP1 IPA at
this stage is neither advanced nor tuned.
Niklas Söderlund (8):
libcamera: delayed_controls: Add helper for controls that applies with
a delay
test: delayed_controls: Add test case for DelayedControls
libcamera: raspberrypi: Switch to DelayedControls
libcamera: raspberrypi: Remove StaggeredCtrl
libcamera: camera_sensor: Expose the camera device
libcamera: pipeline: rkisp1: Use delayed controls
libcamera: pipeline: rkisp1: Use SOF event to warn about late
parameters
libcamera: pipeline: rkisp1: Remove Timeline
include/libcamera/internal/camera_sensor.h | 2 +
include/libcamera/internal/delayed_controls.h | 82 +++++
src/libcamera/camera_sensor.cpp | 6 +
src/libcamera/delayed_controls.cpp | 252 +++++++++++++++
src/libcamera/meson.build | 1 +
.../pipeline/raspberrypi/meson.build | 1 -
.../pipeline/raspberrypi/raspberrypi.cpp | 54 ++--
.../pipeline/raspberrypi/staggered_ctrl.cpp | 174 ----------
.../pipeline/raspberrypi/staggered_ctrl.h | 96 ------
src/libcamera/pipeline/rkisp1/meson.build | 1 -
src/libcamera/pipeline/rkisp1/rkisp1.cpp | 166 +++-------
src/libcamera/pipeline/rkisp1/timeline.cpp | 227 -------------
src/libcamera/pipeline/rkisp1/timeline.h | 71 ----
test/delayed_contols.cpp | 304 ++++++++++++++++++
test/meson.build | 1 +
15 files changed, 719 insertions(+), 719 deletions(-)
create mode 100644 include/libcamera/internal/delayed_controls.h
create mode 100644 src/libcamera/delayed_controls.cpp
delete mode 100644 src/libcamera/pipeline/raspberrypi/staggered_ctrl.cpp
delete mode 100644 src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
delete mode 100644 src/libcamera/pipeline/rkisp1/timeline.cpp
delete mode 100644 src/libcamera/pipeline/rkisp1/timeline.h
create mode 100644 test/delayed_contols.cpp
--
2.29.2
More information about the libcamera-devel
mailing list