[libcamera-devel] [PATCH v3 1/4] android: Instantiate CameraDevice after checking HAL config validity

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Mon Aug 2 09:02:47 CEST 2021


Hi Umang,

On Fri, Jul 30, 2021 at 04:31:51PM +0530, Umang Jain wrote:
> Currently CameraDevice wrapper is created first and then HAL config
> validity is checked. If the validity checks fail, the code path will
> simply return, in which case, creating CameraDevice seems a futile
> exercise.
> 
> This patch defers the creation of CameraDevice wrapper until the HAL
> config validity is checked for internal cameras. This will also enable
> us to infer a few things beforehand, by reading the config file before
> creating the CameraDevice wrapper.
> 
> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  src/android/camera_hal_manager.cpp | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
> index 4cd67544..b364f62a 100644
> --- a/src/android/camera_hal_manager.cpp
> +++ b/src/android/camera_hal_manager.cpp
> @@ -133,9 +133,6 @@ void CameraHalManager::cameraAdded(std::shared_ptr<Camera> cam)
>  		}
>  	}
>  
> -	/* Create a CameraDevice instance to wrap the libcamera Camera. */
> -	std::unique_ptr<CameraDevice> camera = CameraDevice::create(id, cam);
> -
>  	/*
>  	 * The configuration file must be valid, and contain a corresponding
>  	 * entry for internal cameras. External cameras can be initialized
> @@ -155,6 +152,9 @@ void CameraHalManager::cameraAdded(std::shared_ptr<Camera> cam)
>  		return;
>  	}
>  
> +	/* Create a CameraDevice instance to wrap the libcamera Camera. */
> +	std::unique_ptr<CameraDevice> camera = CameraDevice::create(id, cam);
> +
>  	int ret = camera->initialize(cameraConfigData);
>  	if (ret) {
>  		LOG(HAL, Error) << "Failed to initialize camera: " << cam->id();
> -- 
> 2.31.0
> 


More information about the libcamera-devel mailing list