[libcamera-devel] [PATCH v3 20/22] libcamera: pipeline: rkisp1: Move path link handling to RkISP1Path
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Sep 29 00:48:15 CEST 2020
Hi Niklas,
Thank you for the patch.
On Fri, Sep 25, 2020 at 03:42:05AM +0200, Niklas Söderlund wrote:
> Move the path link handling to RkISP1Path, there is no functional
> change.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> src/libcamera/pipeline/rkisp1/rkisp1.cpp | 11 ++---------
> src/libcamera/pipeline/rkisp1/rkisp1path.cpp | 6 +++++-
> src/libcamera/pipeline/rkisp1/rkisp1path.h | 4 ++++
> 3 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 6158fbee41339c32..e41a9a51bda576b0 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -1015,20 +1015,13 @@ int PipelineHandlerRkISP1::initLinks(const Camera *camera,
> }
>
> for (const StreamConfiguration &cfg : config) {
> - MediaLink *link;
> if (cfg.stream() == &data->mainPathStream_)
> - link = media_->link("rkisp1_isp", 2,
> - "rkisp1_resizer_mainpath", 0);
> + ret = data->mainPath_->enable();
> else if (cfg.stream() == &data->selfPathStream_)
> - link = media_->link("rkisp1_isp", 2,
> - "rkisp1_resizer_selfpath", 0);
> + ret = data->selfPath_->enable();
> else
> return -EINVAL;
>
> - if (!link)
> - return -ENODEV;
> -
> - ret = link->setEnabled(true);
> if (ret < 0)
> return ret;
> }
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1path.cpp
> index b2dd669f4caf3269..8010cb92423c8269 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1path.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1path.cpp
> @@ -22,7 +22,7 @@ RkISP1Path::RkISP1Path(const char *name, const std::vector<PixelFormat> &formats
> const Size &minResolution, const Size &maxResolution)
> : name_(name), running_(false), formats_(formats),
> minResolution_(minResolution), maxResolution_(maxResolution),
> - resizer_(nullptr), video_(nullptr)
> + resizer_(nullptr), video_(nullptr), link_(nullptr)
> {
> }
>
> @@ -45,6 +45,10 @@ bool RkISP1Path::init(MediaDevice *media)
> if (video_->open() < 0)
> return false;
>
> + link_ = media->link("rkisp1_isp", 2, resizer, 0);
> + if (!link_)
> + return false;
> +
> return true;
> }
>
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1path.h b/src/libcamera/pipeline/rkisp1/rkisp1path.h
> index 9c2ecb620375683b..f57f4b646c3a3164 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1path.h
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1path.h
> @@ -12,6 +12,7 @@
> #include <libcamera/camera.h>
> #include <libcamera/signal.h>
>
> +#include "libcamera/internal/media_object.h"
> #include "libcamera/internal/v4l2_videodevice.h"
>
> namespace libcamera {
> @@ -32,6 +33,8 @@ public:
>
> bool init(MediaDevice *media);
>
> + int enable() { return link_->setEnabled(true); }
> +
> StreamConfiguration generateConfiguration(const Size &resolution);
> CameraConfiguration::Status validate(StreamConfiguration *cfg);
>
> @@ -59,6 +62,7 @@ private:
>
> V4L2Subdevice *resizer_;
> V4L2VideoDevice *video_;
> + MediaLink *link_;
> };
>
> class RkISP1MainPath : public RkISP1Path
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list