[libcamera-devel] [PATCH 2/8] android: CameraHalManager: Hold CameraManager with std::unique_ptr
Hirokazu Honda
hiroh at chromium.org
Tue Mar 23 03:25:45 CET 2021
Hi Laurent, thanks for reviewing.
On Tue, Mar 23, 2021 at 11:00 AM Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>
> Hi Hiro,
>
> Thank you for the patch.
>
> On Tue, Mar 23, 2021 at 10:42:20AM +0900, Hirokazu Honda wrote:
> > CameraManager is owned by CameraHalManager. The ownership of the
> > object is not shared with other classes. So CameraHalManager
> > should manage CameraManager with std::unique_ptr.
> >
> > Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
> >
> > ---
> > src/android/camera_hal_manager.cpp | 14 +++-----------
> > src/android/camera_hal_manager.h | 2 +-
> > 2 files changed, 4 insertions(+), 12 deletions(-)
> >
> > diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
> > index b3c85406..fa398fea 100644
> > --- a/src/android/camera_hal_manager.cpp
> > +++ b/src/android/camera_hal_manager.cpp
> > @@ -34,18 +34,11 @@ CameraHalManager::CameraHalManager()
> > {
> > }
> >
> > -CameraHalManager::~CameraHalManager()
> > -{
> > - if (cameraManager_) {
> > - cameraManager_->stop();
>
> Shouldn't this line be kept ? Apart from that, the patch looks good to
> me.
I removed it because libcamera::CameraManager's dtor calls stop().
-Hiro
>
> > - delete cameraManager_;
> > - cameraManager_ = nullptr;
> > - }
> > -}
> > +CameraHalManager::~CameraHalManager() = default;
> >
> > int CameraHalManager::init()
> > {
> > - cameraManager_ = new CameraManager();
> > + cameraManager_ = std::make_unique<CameraManager>();
> >
> > /* Support camera hotplug. */
> > cameraManager_->cameraAdded.connect(this, &CameraHalManager::cameraAdded);
> > @@ -55,8 +48,7 @@ int CameraHalManager::init()
> > if (ret) {
> > LOG(HAL, Error) << "Failed to start camera manager: "
> > << strerror(-ret);
> > - delete cameraManager_;
> > - cameraManager_ = nullptr;
> > + cameraManager_.reset();
> > return ret;
> > }
> >
> > diff --git a/src/android/camera_hal_manager.h b/src/android/camera_hal_manager.h
> > index 65bb3554..dc4e37e5 100644
> > --- a/src/android/camera_hal_manager.h
> > +++ b/src/android/camera_hal_manager.h
> > @@ -47,7 +47,7 @@ private:
> >
> > CameraDevice *cameraDeviceFromHalId(unsigned int id);
> >
> > - libcamera::CameraManager *cameraManager_;
> > + std::unique_ptr<libcamera::CameraManager> cameraManager_;
> >
> > const camera_module_callbacks_t *callbacks_;
> > std::vector<std::unique_ptr<CameraDevice>> cameras_;
>
> --
> Regards,
>
> Laurent Pinchart
More information about the libcamera-devel
mailing list