From cc0a50cddf8a45cc1402b0739275bf619e9c46d3 Mon Sep 17 00:00:00 2001 From: Umang Jain Date: Fri, 30 Jul 2021 16:31:51 +0530 Subject: android: Instantiate CameraDevice after checking HAL config validity 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 Reviewed-by: Jacopo Mondi Reviewed-by: Laurent Pinchart Reviewed-by: Paul Elder --- src/android/camera_hal_manager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') 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 cam) } } - /* Create a CameraDevice instance to wrap the libcamera Camera. */ - std::unique_ptr 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 cam) return; } + /* Create a CameraDevice instance to wrap the libcamera Camera. */ + std::unique_ptr camera = CameraDevice::create(id, cam); + int ret = camera->initialize(cameraConfigData); if (ret) { LOG(HAL, Error) << "Failed to initialize camera: " << cam->id(); -- cgit v1.2.1