From 64f4f667ed1c58d4889a3b00c6750a2ddfc625f2 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Mon, 25 May 2020 16:08:22 +0200 Subject: android: hal_manager: Do not hardcode properties The CameraHalManager::getCameraInfo() method hardcodes the camera facing side and orientation (which corresponds, confusingly, to libcamera's location and rotation properties). Instead of hard-coding the values based on the camera id, inspect the libcamera properties that report the camera location and rotation in a new initialize() method, and use them to report the android camera info and to populate the static metadata buffer. Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/android/camera_hal_manager.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/android/camera_hal_manager.cpp') diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp index b02d8d1a..02b6418f 100644 --- a/src/android/camera_hal_manager.cpp +++ b/src/android/camera_hal_manager.cpp @@ -65,8 +65,11 @@ int CameraHalManager::init() unsigned int index = 0; for (auto &cam : cameraManager_->cameras()) { CameraDevice *camera = new CameraDevice(index, cam); - cameras_.emplace_back(camera); + ret = camera->initialize(); + if (ret) + continue; + cameras_.emplace_back(camera); ++index; } @@ -107,9 +110,8 @@ int CameraHalManager::getCameraInfo(unsigned int id, struct camera_info *info) CameraDevice *camera = cameras_[id].get(); - /* \todo Get these info dynamically inspecting the camera module. */ - info->facing = id ? CAMERA_FACING_FRONT : CAMERA_FACING_BACK; - info->orientation = 0; + info->facing = camera->facing(); + info->orientation = camera->orientation(); info->device_version = CAMERA_DEVICE_API_VERSION_3_3; info->resource_cost = 0; info->static_camera_characteristics = camera->getStaticMetadata(); -- cgit v1.2.1