[libcamera-devel] [PATCH 08/15] android: camera_device: Return Camera as shared_ptr

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Oct 5 12:46:42 CEST 2020


From: Jacopo Mondi <jacopo at jmondi.org>

Return the Camera wrapped by the CameraDevice as a shared_ptr.
This will be required to construct the FrameBuffer allocator in
the CameraStream class.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/android/camera_device.h        | 2 +-
 src/android/camera_hal_manager.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 826023b453f7..777d1a35e801 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -49,7 +49,7 @@ public:
 
 	unsigned int id() const { return id_; }
 	camera3_device_t *camera3Device() { return &camera3Device_; }
-	const libcamera::Camera *camera() const { return camera_.get(); }
+	std::shared_ptr<libcamera::Camera> camera() const { return camera_; }
 	libcamera::CameraConfiguration *cameraConfiguration() const
 	{
 		return config_.get();
diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
index 05b474010b1d..e29eddbb5590 100644
--- a/src/android/camera_hal_manager.cpp
+++ b/src/android/camera_hal_manager.cpp
@@ -155,7 +155,7 @@ void CameraHalManager::cameraRemoved(std::shared_ptr<Camera> cam)
 
 	auto iter = std::find_if(cameras_.begin(), cameras_.end(),
 				 [&cam](std::shared_ptr<CameraDevice> &camera) {
-					 return cam.get() == camera->camera();
+					 return cam.get() == camera->camera().get();
 				 });
 	if (iter == cameras_.end())
 		return;
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list