[libcamera-devel,v2,0/4] libcamera: converter: generalize Converter to remove MediaDevice dependency
mbox series

Message ID 20230920151921.31273-1-andrey.konovalov@linaro.org
Headers show
Series
  • libcamera: converter: generalize Converter to remove MediaDevice dependency
Related show

Message

Andrey Konovalov Sept. 20, 2023, 3:19 p.m. UTC
The first patch in this series is a few fixes to the
ConverterFactoryBase documentation.

The second patch makes the Converter class more generic
by making pointer to MediaDevice an optional argument in
the relevant member functions.

The last two patches demonstrate a software converter using
this generalized version of the Converter class.

The raw bayer to RGB software converter implementation is
a slightly improved version of the one in my previous
patchset [1] (buffers mapping fixed). But this is still
work in progress hence the [RFC] for the last two patches.

Changes in v2 vs v1:
- added a separate patch to fix the ConverterFactoryBase documentation
- modified the Converter class to make the '*media' parameter optional
  instead of splitting out ConverterMD from the Converter. This
  also makes it possible to use the same ConverterFactory template
  for converters that rely on MediaDevice, and the software ones.
- removed the unnecessary header includes

[1] https://patchwork.libcamera.org/cover/18924/

Andrey Konovalov (4):
  libcamera: converter: a few fixes to ConverterFactoryBase
    documentation
  libcamera: converter: make using MediaDevice optional for the
    Converter
  libcamera: converter: add software converter
  libcamera: pipeline: simple: enable software converter for qcom-camss

 include/libcamera/internal/converter.h        |   9 +-
 .../internal/converter/converter_softw.h      |  90 ++++
 .../libcamera/internal/converter/meson.build  |   1 +
 src/libcamera/converter.cpp                   |  66 +--
 src/libcamera/converter/converter_softw.cpp   | 410 ++++++++++++++++++
 src/libcamera/converter/meson.build           |   3 +-
 src/libcamera/pipeline/simple/simple.cpp      |  35 +-
 7 files changed, 572 insertions(+), 42 deletions(-)
 create mode 100644 include/libcamera/internal/converter/converter_softw.h
 create mode 100644 src/libcamera/converter/converter_softw.cpp