[v3,0/4] libcamera: rkisp1: Plumb the ConverterDW100 converter
mbox series

Message ID 20240625062327.50940-1-umang.jain@ideasonboard.com
Headers show
Series
  • libcamera: rkisp1: Plumb the ConverterDW100 converter
Related show

Message

Umang Jain June 25, 2024, 6:23 a.m. UTC
This series intends to support i.MX8MP DW100 dewarper in rkisp1 pipeline
handler. It is modelled as Converter (inherited from V4L2M2MConverter)
and has a helper to support scaler crop control. The converter acts
as a base for now, additional development around dewarping capabilites
and support in simple pipeline-handler [1] can be added on top as
focused tasks.

Patch 1/4 prepares the rkisp1 pipeline handler to register controls
for the camera, outside of the IPA. The ConverterDW100 will let us support
scaler crop - which will be registered as one of the 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 ConverterDW100 class inheriting from
converter_v4l2_m2m. This provides a scaler crop setting helper.

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

This series is based on top of [2]

Testing:
--------
The series is tested on i.MX8MP and cam utility, by setting scaler crop
control via capture script with IMX283 attached to isp0.

Changes in v3:
- Base on top of [2]
- Model dewarper class as converter, so can be used with Simple
  pipeline-handler/ISI

Changes in v2:
- Fix raw capture configuration, disable dewarper in that case

[1]: Supporting the ConverterDW100 is simple pipeline handler should be
easy, adding the compatibles string and registering the converter with
REGISTER_CONVERTER(). However, for testing the
i.MX8MP -> ISI -> ConverterDW100 (dewarper) requires me to have a YUV
sensor attached, which I have not abled to source it yet. Once I source
it, I will test the ConverterDW100 on simple pipeline handler (I don't
expect any issues there but still..) and prepare a integration patch.
I hope this doesn't act as blocker for the series.

[2] [PATCH v4 0/4] libcamera: converter: Replace usage of stream index by Stream pointer

Umang Jain (4):
  libcamera: rkisp1: Prepare for additional camera controls
  libcamera: converter_v4l2_m2m: Support crop selection
  libcamera: converter: Add DW100 converter class
  libcamera: rkisp1: Plumb the ConverterDW100 converter

 .../internal/converter/converter_dw100.h      |  26 +++
 .../internal/converter/converter_v4l2_m2m.h   |   5 +
 .../libcamera/internal/converter/meson.build  |   1 +
 src/libcamera/converter/converter_dw100.cpp   |  56 ++++++
 .../converter/converter_v4l2_m2m.cpp          |  27 +++
 src/libcamera/converter/meson.build           |   1 +
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 171 +++++++++++++++++-
 src/libcamera/pipeline/rkisp1/rkisp1_path.cpp |  12 +-
 src/libcamera/pipeline/rkisp1/rkisp1_path.h   |  14 ++
 9 files changed, 302 insertions(+), 11 deletions(-)
 create mode 100644 include/libcamera/internal/converter/converter_dw100.h
 create mode 100644 src/libcamera/converter/converter_dw100.cpp