[libcamera-devel] [PATCH 0/8] Simple pipeline handler

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sat Mar 14 00:38:48 CET 2020


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 8/8.

Patch 1/8 adds a V4L2 API extension required for pipeline
auto-configuration, which has been posted as an RFC but not merged in
the mainline kernel yet. Patches 2/8 to 7/8 than add a new utility
function and small extensions to the V4L2-related classes. Patch 8/8
adds the new simple pipeline handler.

The code has been tested on an i.MX7 platform with a greyscale sensor.
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.

Benjamin, Mickael, this is meant to be compatible with the stm32 and
qcom-camss that you have previously submitted pipeline handlers for. You
will need to add the respective drivers to the drivers array in
SimplePipelineHandler::match(), and, as for sun6i-csi, you will need to
implement support for the VIDIOC_ENUM_FMT extension, which should be
fairly easy.

Laurent Pinchart (7):
  [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

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/meson.build |   3 +
 src/libcamera/pipeline/simple/simple.cpp  | 693 ++++++++++++++++++++++
 src/libcamera/utils.cpp                   |  16 +
 src/libcamera/v4l2_subdevice.cpp          |  23 +-
 src/libcamera/v4l2_videodevice.cpp        |  36 +-
 test/utils.cpp                            |   7 +-
 11 files changed, 828 insertions(+), 16 deletions(-)
 create mode 100644 src/libcamera/pipeline/simple/meson.build
 create mode 100644 src/libcamera/pipeline/simple/simple.cpp

-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list