[libcamera-devel] [PATCH v3 00/22] libcamera: pipeline: rkisp1: Extend to support two streams
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Sep 29 00:56:31 CEST 2020
Hi Niklas,
Thank you for the series.
On Fri, Sep 25, 2020 at 03:41:45AM +0200, Niklas Söderlund wrote:
> Hi,
>
> This series extends the RkISP1 pipeline handler to work with 2 streams.
> It allows cameras backed by this pipeline to expose a main path stream,
> same as the one before this series. And a new self path stream that can
> operate in addition or independently from the main path.
>
> In previous versions of this series RGB formats where added to the self
> path (new formats not supported by the main path) but further
> examination of those formats resulted in that the captured frames looks
> weird. Pending future investigation drop that work from this series.
Just for my own curiosity, how weird ?
> Furthermore this series does not extend support for RAW formats as this
> is such a special case for this pipeline. Only the main path may be
> active and no ISP parameters can be processed. This may be added on top
> but functionality have been proven as a prototype.
I think adding support for the second ISP would then be an interesting
experiment. Clearly for (much) later :-)
> New in this version are patches 15/22 to 21/22 that adds a new
> RkISP1Path class which abstracts the two paths into a single helper
> class with shared logic. The shared logic can then be leveraged to
> simplify the pipeline handler.
Very nice cleanups, thanks.
> Patch 22/22 is an attempt to use a lambda function to further simplify
> error logic in start(). It is primary provided as a proof-of-concept
> and should be regarded as RFC.
>
> To be able to use both main and self path simultaneously must run a
> kernel that includes [1]. The development of the series is tested on the
> media-tree [2] with out-of-tree DTS patches for the test Scarlet
> platform to enable the camera sensors.
>
> 1. 60e915354c270357 ("media: staging: rkisp1: cap: fix return values from pm functions")
> 2. f45882cfb152f5d3 ("media: camss: fix memory leaks on error handling paths in probe")
>
> Niklas Söderlund (22):
> libcamera: pipeline: rkisp1: Set number of planes based on format
> libcamera: pipeline: rkisp1: Remove redundant check of buffer in
> Request
> libcamera: pipeline: rkisp1: Breakout mainpath size and format
> constraints
> libcamera: pipeline: rkisp1: Setup links as part of configuration
> libcamera: pipeline: rkisp1: Prepare buffer ready handlers for
> multiple streams
> libcamera: pipeline: rkisp1: Create RkISP1Frames from camera data
> libcamera: pipeline: rkisp1: Export stream formats to applications
> libcamera: pipeline: rkisp1: Set the crop rectangle
> libcamera: pipeline: rkisp1: Prefix main path video and resizer
> libcamera: pipeline: rkisp1: Add self path devices
> libcamera: pipeline: rkisp1: Configure self path
> libcamera: pipeline: rkisp1: Track buffers for self path
> libcamera: pipeline: rkisp1: Add format validation for self path
> libcamera: pipeline: rkisp1: Expose self path stream
> libcamera: pipeline: rkisp1: Breakout basic path handling to own class
> libcamera: pipeline: rkisp1: Move path configuration to RkISP1Path
> libcamera: pipeline: rkisp1: Move path configuration generation and
> validation to RkISP1Path
> libcamera: pipeline: rkisp1: Add wrappers for accessing the path video
> device
> libcamera: pipeline: rkisp1: Move start and stop of path to RkISP1Path
> libcamera: pipeline: rkisp1: Move path link handling to RkISP1Path
> libcamera: pipeline: rkisp1: Use the media link to track if a path is
> enabled
> libcamera: pipeline: rkisp1: Use cleanup error paths for start()
>
> src/libcamera/pipeline/rkisp1/meson.build | 1 +
> src/libcamera/pipeline/rkisp1/rkisp1.cpp | 555 +++++++++++--------
> src/libcamera/pipeline/rkisp1/rkisp1path.cpp | 237 ++++++++
> src/libcamera/pipeline/rkisp1/rkisp1path.h | 83 +++
> 4 files changed, 633 insertions(+), 243 deletions(-)
> create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1path.cpp
> create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1path.h
>
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list