[RFC,0/6] converter_dw100: Add vertex map support
mbox series

Message ID 20240712052920.33396-1-umang.jain@ideasonboard.com
Headers show
Series
  • converter_dw100: Add vertex map support
Related show

Message

Umang Jain July 12, 2024, 5:29 a.m. UTC
Add vertex map support in converter_dw100. It has been successfully
tested via plumbing rkisp1 pipeline handler on i.MX8MP with identity
dewarp maps.

Please look at each patch for details. This is an RFC/plumbing for
setting of vertex map V4L2_CID_DW100_DEWARPING_16x16_VERTEX_MAP on
DW100 converter.

Based on [1].

Documentation has been deliberately skipped here. It will be done
later when the interface is finalised. I feel we need more
implementations/integration of dewarpers, before working on an actual
dewarper Converter interface. It has been highlighted at previous
attempts as well [2]:

```
As we have a single converter that can perform dewarping, I'd prefer
moving the Mapping support from V4L2M2MConverter to this class. It's
hard to predict what other dewarpers will need, and designing an API
based on a single example usually doesn't produce the best design. We
can always refactor the code later when we'll get a second device.
```

I agree with above and I have felt the same while ressurcting DW100
work, hence currently tried to contain it within converter_v4l2_m2m
and converter_dw100 (without touching the Converter interface).
Will wait on more feedback and see what direction it will take.

[1]: https://patchwork.libcamera.org/project/libcamera/list/?series=4450
[2]: https://patchwork.libcamera.org/patch/17351/#25248

Umang Jain (4):
  libcamera: v4l2_device: Add support for V4L2_CTRL_TYPE_U32
  libcamera: converter_v4l2_m2m: Add vertex mapping class
  libcamera: converter_v4l2_m2m: Add helper to apply controls
  libcamera: converter_dw100: Load and apply dewarp vertex maps

Xavier Roumegue (2):
  include: linux: Update headers for Dw100 dewarper engine
  libcamera: yaml_parser: Increase sentinel to 100k

 include/libcamera/controls.h                  |   5 +
 .../internal/converter/converter_dw100.h      |   5 +
 .../internal/converter/converter_v4l2_m2m.h   |  25 ++++
 include/linux/dw100.h                         |  14 ++
 src/libcamera/converter/converter_dw100.cpp   | 127 ++++++++++++++++++
 .../converter/converter_v4l2_m2m.cpp          |  18 +++
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |   4 +
 src/libcamera/v4l2_device.cpp                 |  11 ++
 src/libcamera/yaml_parser.cpp                 |   9 +-
 9 files changed, 215 insertions(+), 3 deletions(-)
 create mode 100644 include/linux/dw100.h