summaryrefslogtreecommitdiff
path: root/src/android/camera_hal_manager.cpp
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2020-05-25 16:08:22 +0200
committerJacopo Mondi <jacopo@jmondi.org>2020-06-04 09:58:02 +0200
commit64f4f667ed1c58d4889a3b00c6750a2ddfc625f2 (patch)
tree06d912ed12ebf21af1d6c6984fef4fe0a03e3761 /src/android/camera_hal_manager.cpp
parent0ffb3a20ed61a53ba20e6d6724b1f23030bc20f8 (diff)
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 <laurent.pinchart@ideasonboard.com> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src/android/camera_hal_manager.cpp')
-rw-r--r--src/android/camera_hal_manager.cpp10
1 files changed, 6 insertions, 4 deletions
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();