[libcamera-devel] [PATCH 0/8] Add IPAManager and IPAInterface
Paul Elder
paul.elder at ideasonboard.com
Tue May 28 00:35:32 CEST 2019
Pipeline handlers need a way to acquire an IPA module. To achieve this,
we use an IPA manager, that loads many IPA modules, after which a
pipeline handler can ask the IPA manager for an IPA module that matches
it. Each IPA can only be used with one pipeline handler, but a pipeline
handler may work with many IPAs (not simultaneously).
The pipeline handlers also need names and versions (previously only the
factory had a name) to be matched with an IPA module.
Each IPA module, in a shared object, implements an IPAInterface class,
which defines the interface between a pipeline hander and an IPA
implementation, hence the name.
Paul Elder (8):
libcamera: ipa_interface: add header
libcamera: pipeline: add name, major version, and minor version
libcamera: ipa_module_info: update struct to allow IPA matching
libcamera: ipa_module: allow instantiation of IPAInterface
libcamera: ipa_manager: implement class for managing IPA modules
libcamera: ipa: add dummy IPA implementation
libcamera: test: remove test IPA and use dummy IPA instead
libcamera: pipeline: vimc: add dummy IPA
Documentation/Doxyfile.in | 7 +-
include/libcamera/ipa/ipa_interface.h | 22 ++++
include/libcamera/ipa/ipa_module_info.h | 11 +-
include/libcamera/meson.build | 1 +
src/ipa/ipa_dummy.cpp | 38 +++++++
src/ipa/meson.build | 10 ++
src/libcamera/include/ipa_manager.h | 40 +++++++
src/libcamera/include/ipa_module.h | 15 ++-
src/libcamera/include/pipeline_handler.h | 20 +++-
src/libcamera/ipa_interface.cpp | 27 +++++
src/libcamera/ipa_manager.cpp | 129 +++++++++++++++++++++++
src/libcamera/ipa_module.cpp | 128 ++++++++++++++++++++--
src/libcamera/meson.build | 6 +-
src/libcamera/pipeline/ipu3/ipu3.cpp | 6 +-
src/libcamera/pipeline/rkisp1/rkisp1.cpp | 6 +-
src/libcamera/pipeline/uvcvideo.cpp | 6 +-
src/libcamera/pipeline/vimc.cpp | 16 ++-
src/libcamera/pipeline_handler.cpp | 20 ++++
src/meson.build | 1 +
test/ipa/ipa_test.cpp | 51 ++++++---
test/ipa/meson.build | 11 --
test/ipa/shared_test.c | 6 --
test/ipa/shared_test.cpp | 4 +-
23 files changed, 527 insertions(+), 54 deletions(-)
create mode 100644 include/libcamera/ipa/ipa_interface.h
create mode 100644 src/ipa/ipa_dummy.cpp
create mode 100644 src/ipa/meson.build
create mode 100644 src/libcamera/include/ipa_manager.h
create mode 100644 src/libcamera/ipa_interface.cpp
create mode 100644 src/libcamera/ipa_manager.cpp
delete mode 100644 test/ipa/shared_test.c
--
2.20.1
More information about the libcamera-devel
mailing list