[libcamera-devel] [PATCH v4 00/11] libcamera: ipu3: Attach to an skeleton IPA
Niklas Söderlund
niklas.soderlund at ragnatech.se
Fri Feb 5 00:26:02 CET 2021
Hello,
This series adds an IPA skeleton for the IPU3 pipeline. The IPA itself
supports mapping of parameter and statistic buffers as well as pushing
V4L2 controls to the camera sensor. It does however not read or write
anything into the buffers given to it during the capture process. It
also adds all the plumbing inside IPU3 pipeline to function with an IPA
while of of course retaining all the different capture setups previously
supported.
The idea is to prepare for adding algorithms in the IPA on-top without
having to worry about all the plumbing inside the pipeline handler. This
will likely happen in two steps. A first where fake algorithms are added
to generate metadata to be used in further development of cam and the
Android HAL. Then a follow up step where the fake ones are replaced with
real ones.
This is tested successfully with cam, the out of tree lc-compliance tool
and webcamtests.com on Soraka. The work is tested based on [1] which at
the time of writing is two commits behind master as the top two commits
bumps meson requirement to v0.55 which is not available in the Soraka
build environment.
1. 5b568b7e41e394b5 ("libcamera: v4l2_videodevice: remove confusing memory MMAP assignment before QUERYBUF")
Niklas Söderlund (11):
include: linux: Add ipu3 kernel header and format definitions
libcamera: ipu3: imgu: Configure the stat video device as part of
configure()
libcamera: ipu3: imgu: Add parameters video device
libcamera: ipu3: cio2: Return the FrameBuffer pointer used
libcamera: ipu3: cio2: Generate start of frame event
libcamera: ipa: ipu3: Add an IPA skeleton for the IPU3 pipeline
libcamera: ipu3: Attach to an IPA and allow it to set sensor controls
libcamera: ipu3: imgu: Allocate buffers for stats and param
libcamera: ipu3: Map buffers in IPA
libcamera: ipu3: Add helper for parameter and statistic buffers
libcamera: ipu3: Share parameter and statistic buffers with IPA
include/libcamera/ipa/ipu3.h | 23 +
include/linux/intel-ipu3.h | 2785 +++++++++++++++++++++++
src/ipa/ipu3/ipu3.cpp | 242 ++
src/ipa/ipu3/meson.build | 21 +
src/ipa/meson.build | 2 +-
src/libcamera/pipeline/ipu3/cio2.cpp | 28 +-
src/libcamera/pipeline/ipu3/cio2.h | 5 +-
src/libcamera/pipeline/ipu3/frames.cpp | 136 ++
src/libcamera/pipeline/ipu3/frames.h | 62 +
src/libcamera/pipeline/ipu3/imgu.cpp | 60 +-
src/libcamera/pipeline/ipu3/imgu.h | 13 +-
src/libcamera/pipeline/ipu3/ipu3.cpp | 294 ++-
src/libcamera/pipeline/ipu3/meson.build | 1 +
13 files changed, 3594 insertions(+), 78 deletions(-)
create mode 100644 include/libcamera/ipa/ipu3.h
create mode 100644 include/linux/intel-ipu3.h
create mode 100644 src/ipa/ipu3/ipu3.cpp
create mode 100644 src/ipa/ipu3/meson.build
create mode 100644 src/libcamera/pipeline/ipu3/frames.cpp
create mode 100644 src/libcamera/pipeline/ipu3/frames.h
--
2.30.0
More information about the libcamera-devel
mailing list