[libcamera-devel] [RFCv2 0/7] libcamera: ipa_manager: Proxy open-source IPAs to a thread

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Mar 26 17:08:12 CET 2020


Hello,

This is an RFC that tries to solve some issues discovered by testing 
Laurent's patch (7/7 in this series). The main change is to extend the 
IPAInterface with a start() and stop() method that can deal with things 
as starting threads or allocating resources needed by the IPA in tandem 
with the camera start and stop.

The series is a mix of patches to the rkisp1 pipeline handler solving 
issues uncovered by running the IPA in a separate thread, adding the IPA 
start() and stop() methods and integrating them with Laurent's work to 
run open-source IPAs in a thread.

Laurent Pinchart (1):
  libcamera: ipa_manager: Proxy open-source IPAs to a thread

Niklas Söderlund (6):
  ipa: Add start() and stop() operations
  libcamera: pipeline: rkisp1: Queue parameters even if they are not
    ready
  libcamera: pipeline: rkisp1: Initialize IPA
  libcamera: pipeline: rkisp1: Do not try to process cancelled frames
  libcamera: pipeline: rkisp1: Call IPA start() and stop()
  libcamera: pipeline: vimc: Call IPA start() and stop()

 include/ipa/ipa_interface.h                 |   4 +
 include/ipa/ipa_vimc.h                      |   2 +
 src/ipa/libipa/ipa_interface_wrapper.cpp    |  16 +++
 src/ipa/libipa/ipa_interface_wrapper.h      |   2 +
 src/ipa/rkisp1/rkisp1.cpp                   |   2 +
 src/ipa/vimc/vimc.cpp                       |  20 +++
 src/libcamera/include/ipa_context_wrapper.h |   2 +
 src/libcamera/ipa_context_wrapper.cpp       |  26 ++++
 src/libcamera/ipa_manager.cpp               |  48 +++----
 src/libcamera/pipeline/rkisp1/rkisp1.cpp    |  53 ++++++-
 src/libcamera/pipeline/vimc/vimc.cpp        |   8 ++
 src/libcamera/proxy/ipa_proxy_linux.cpp     |   2 +
 src/libcamera/proxy/ipa_proxy_thread.cpp    | 144 ++++++++++++++++++++
 src/libcamera/proxy/meson.build             |   1 +
 test/ipa/ipa_interface_test.cpp             |  24 ++++
 test/ipa/ipa_wrappers_test.cpp              |  25 +++-
 16 files changed, 344 insertions(+), 35 deletions(-)
 create mode 100644 src/libcamera/proxy/ipa_proxy_thread.cpp

-- 
2.25.1



More information about the libcamera-devel mailing list