[libcamera-devel] [PATCH v2 00/10] Simple pipeline handler
Benjamin GAIGNARD
benjamin.gaignard at st.com
Tue Mar 17 09:15:38 CET 2020
On 3/16/20 10:43 PM, Laurent Pinchart wrote:
> Hello,
>
> This patch series builds on Martijn's work to implement a pipeline
> handler for simpler pipelines. Additional information about the pipeline
> handler itself can be found in patch 08/10.
>
> Compared to v1, this version has been rebased on top of the buffer
> management simplification ([1]). It also includes support for simple
> converters, V4L2 mem2mem device that perform format conversion, to
> extend the number of supported pixel formats.
>
> [1] https://lists.libcamera.org/pipermail/libcamera-devel/2020-March/007224.html
>
> Patches 01/10 to 07/10 haven't been changed compare to v1. They add a
> V4L2 API extension required for pipeline auto-configuration (01/10), as
> well aw new utility functions and miscellaneous small extensions (02/10
> to 07/10).
Hi Laurent,
Could you give a link to this new V4L2 API extension ?
I will try to find time to test it with this series on stm32.
Thanks.
Benjamin
>
> Patch 08/10 adds the new simple pipeline handler, patch 09/10 the
> simpler converter, and patch 10/10 integrates converter support into the
> simple pipeline handler. The converter API should probably be improved,
> I've implemented it as a proof of concept. Other options also exist,
> such as making the simple pipeline handler a base class from which more
> specialized pipeline handlers could derive from, and implement support
> for converters in device-specific code.
>
> The code has been tested on an i.MX7 platform with a greyscale sensor
> and the i.MX PXP as format converter to produce RGB. I've kept sun6i-csi
> from Martijn's work in the list of supported drivers, but supporting
> that platform will require extending the corresponding driver to support
> the VIDIOC_ENUM_FMT extension. Once done, if all goes well, the platform
> should work out of the box.
>
> As before, this is meant to be compatible with the stm32 and qcom-camss
> that pipeline handlers have previously been submitted for. The
> respective drivers need be added to the drivers array in
> SimplePipelineHandler::match(), and, as for sun6i-csi, support for the
> VIDIOC_ENUM_FMT extension needs to be implemented in the drivers, which
> should be fairly easy.
>
> Laurent Pinchart (9):
> [DNI] include: linux: Extend VIDIOC_ENUM_FMT to support MC-centric
> devices
> libcamera: utils: Add string join function
> libcamera: v4l2_subdevice: Extend [gs]etFormat() to specify format
> type
> libcamera: v4l2_videodevice: Support filtering formats by media bus
> code
> libcamera: v4l2_videodevice: Expose the device capabilities
> libcamera: v4l2_videodevice: Downgrade 4CC conversion errors to
> warnings
> libcamera: v4l2_videodevice: Map V4L2_PIX_FMT_GREY to DRM FourCC
> libcamera: pipeline: simple: Add simple format converter
> libcamera: pipeline: simple: Integrate converter support
>
> Martijn Braam (1):
> libcamera: pipeline: Add a simple pipeline handler
>
> include/linux/videodev2.h | 4 +-
> src/libcamera/include/utils.h | 44 +
> src/libcamera/include/v4l2_subdevice.h | 11 +-
> src/libcamera/include/v4l2_videodevice.h | 6 +-
> src/libcamera/pipeline/meson.build | 1 +
> src/libcamera/pipeline/simple/converter.cpp | 210 +++++
> src/libcamera/pipeline/simple/converter.h | 60 ++
> src/libcamera/pipeline/simple/meson.build | 4 +
> src/libcamera/pipeline/simple/simple.cpp | 855 ++++++++++++++++++++
> src/libcamera/utils.cpp | 16 +
> src/libcamera/v4l2_subdevice.cpp | 23 +-
> src/libcamera/v4l2_videodevice.cpp | 36 +-
> test/utils.cpp | 7 +-
> 13 files changed, 1261 insertions(+), 16 deletions(-)
> create mode 100644 src/libcamera/pipeline/simple/converter.cpp
> create mode 100644 src/libcamera/pipeline/simple/converter.h
> create mode 100644 src/libcamera/pipeline/simple/meson.build
> create mode 100644 src/libcamera/pipeline/simple/simple.cpp
>
More information about the libcamera-devel
mailing list