Message ID | 20200316214310.27665-1-laurent.pinchart@ideasonboard.com |
---|---|
Headers | show |
Series |
|
Related | show |
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 >
Hi Benjamin, On Tue, Mar 17, 2020 at 08:15:38AM +0000, Benjamin GAIGNARD wrote: > 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 ? https://lore.kernel.org/linux-media/20200314114410.GA5320@pendragon.ideasonboard.com/T/#m770b852445c2aa61388e8bc2f9ec4b3d7cc0ebc0 Reviews are appreciated :-) > I will try to find time to test it with this series on stm32. Thank you. > > 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