[libcamera-devel] [PATCH 2/3] libcamera: pipeline: vimc: Use V4L2*::fromEntityName() where possible
paul.elder at ideasonboard.com
paul.elder at ideasonboard.com
Mon Dec 14 03:14:07 CET 2020
Hi Laurent,
On Sat, Dec 12, 2020 at 08:51:15PM +0200, Laurent Pinchart wrote:
> Replace manual construction of V4L2VideoDevice and V4L2Subdevide with
> the fromEntityName() helper where possible. The returned pointer is
> managed as a std::unique_ptr<>, which simplifies the VimcCameraData
> destructor.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> src/libcamera/pipeline/vimc/vimc.cpp | 24 +++++++++---------------
> 1 file changed, 9 insertions(+), 15 deletions(-)
>
> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
> index 2a5054a8b1b8..72256f5b4190 100644
> --- a/src/libcamera/pipeline/vimc/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
> @@ -42,19 +42,13 @@ class VimcCameraData : public CameraData
> {
> public:
> VimcCameraData(PipelineHandler *pipe, MediaDevice *media)
> - : CameraData(pipe), media_(media), sensor_(nullptr),
> - debayer_(nullptr), scaler_(nullptr), video_(nullptr),
> - raw_(nullptr)
> + : CameraData(pipe), media_(media), sensor_(nullptr)
> {
> }
>
> ~VimcCameraData()
> {
> delete sensor_;
> - delete debayer_;
> - delete scaler_;
> - delete video_;
> - delete raw_;
> }
>
> int init();
> @@ -62,10 +56,10 @@ public:
>
> MediaDevice *media_;
> CameraSensor *sensor_;
> - V4L2Subdevice *debayer_;
> - V4L2Subdevice *scaler_;
> - V4L2VideoDevice *video_;
> - V4L2VideoDevice *raw_;
> + std::unique_ptr<V4L2Subdevice> debayer_;
> + std::unique_ptr<V4L2Subdevice> scaler_;
> + std::unique_ptr<V4L2VideoDevice> video_;
> + std::unique_ptr<V4L2VideoDevice> raw_;
> Stream stream_;
> };
>
> @@ -472,21 +466,21 @@ int VimcCameraData::init()
> if (ret)
> return ret;
>
> - debayer_ = new V4L2Subdevice(media_->getEntityByName("Debayer B"));
> + debayer_ = V4L2Subdevice::fromEntityName(media_, "Debayer B");
> if (debayer_->open())
> return -ENODEV;
>
> - scaler_ = new V4L2Subdevice(media_->getEntityByName("Scaler"));
> + scaler_ = V4L2Subdevice::fromEntityName(media_, "Scaler");
> if (scaler_->open())
> return -ENODEV;
>
> - video_ = new V4L2VideoDevice(media_->getEntityByName("RGB/YUV Capture"));
> + video_ = V4L2VideoDevice::fromEntityName(media_, "RGB/YUV Capture");
> if (video_->open())
> return -ENODEV;
>
> video_->bufferReady.connect(this, &VimcCameraData::bufferReady);
>
> - raw_ = new V4L2VideoDevice(media_->getEntityByName("Raw Capture 1"));
> + raw_ = V4L2VideoDevice::fromEntityName(media_, "Raw Capture 1");
> if (raw_->open())
> return -ENODEV;
>
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
More information about the libcamera-devel
mailing list