[0/4] libcamera: rkisp1: Plumb i.MX8MP DW100 dewarper
mbox series

Message ID 20240519081539.29832-1-umang.jain@ideasonboard.com
Headers show
Series
  • libcamera: rkisp1: Plumb i.MX8MP DW100 dewarper
Related show

Message

Umang Jain May 19, 2024, 8:15 a.m. UTC
This series intends to support i.MX8MP DW100 dewarper in rkisp1 pipeline
handler.

Patch 1/4 prepares the rkisp1 pipeline handler to register controls
for the camera, outside of the IPA. The dewarper will let us support
scaler crop - which will be registered as camera controls.

Patch 2/4 is also a prepartory patch to accept scaler crop rectangles
for the converter_v4l2_m2m on each stream.

Patch 3/4 adds a base RkISP1Dewarper class inheriting from
converter_v4l2_m2m. This provides a scaler crop setting helper.

Patch 4/4 finally plumbs the dewarper in the rkisp1 pipeline handler.
If the scaler crop control is found set in the request, it is applied
on the dewarper.

The series is tested on i.MX8MP and cam utility, by setting scaler crop
control via capture script.

Additional development:

Initially when I developed, I added support to load a dewarp config file
via environment variables which then can be used to set
V4L2_CID_DW100_DEWARPING_16x16_VERTEX_MAP control. However, it has
needs adhoc development to support v4l2 compound controls (which
also I tried) but ultimately I failed to test, if this control was
really working for me. Hence, I decided to send this series without
that development and hope it can be done on top of this.

Umang Jain (4):
  libcamera: rkisp1: Prepare for additional camera controls
  libcamera: converter_v4l2_m2m: Support crop selection
  libcamera: rkisp1: Add base class DW100 dewarper
  libcamera: rkisp1: Plumb through RkISP1Dewarper

 .../internal/converter/converter_v4l2_m2m.h   |   5 +
 .../converter/converter_v4l2_m2m.cpp          |  26 +++
 src/libcamera/pipeline/rkisp1/meson.build     |   1 +
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 162 +++++++++++++++++-
 .../pipeline/rkisp1/rkisp1_dewarper.cpp       |  38 ++++
 .../pipeline/rkisp1/rkisp1_dewarper.h         |  25 +++
 src/libcamera/pipeline/rkisp1/rkisp1_path.cpp |  12 +-
 src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  14 ++
 8 files changed, 272 insertions(+), 11 deletions(-)
 create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1_dewarper.cpp
 create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1_dewarper.h