[libcamera-devel] [PATCH v2 6/6] android: camera_device: Return AE FPS range
Jacopo Mondi
jacopo at jmondi.org
Tue Jan 26 18:30:08 CET 2021
The result metadata reported an arbitrary {30, 30} FPS range for the
AE algorithm.
The actual FPS range should be returned in the Request::metadata, but
as libcamera currently does not support that feature temporary work
around the issue and return the FPS range requested by the camera
framework.
Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
src/android/camera_device.cpp | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index f3f59f7dcb77..6339ef257906 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -1951,6 +1951,7 @@ std::unique_ptr<CameraMetadata>
CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
int64_t timestamp)
{
+ const CameraMetadata &settings = descriptor->settings_;
const ControlList &metadata = descriptor->request_->metadata();
/*
@@ -1977,9 +1978,21 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
value = ANDROID_CONTROL_AE_MODE_ON;
resultMetadata->addEntry(ANDROID_CONTROL_AE_MODE, &value, 1);
- std::vector<int32_t> aeFpsTarget = { 30, 30 };
- resultMetadata->addEntry(ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
- aeFpsTarget.data(), aeFpsTarget.size());
+ camera_metadata_ro_entry_t entry;
+ bool found = settings.getEntry(ANDROID_CONTROL_AE_TARGET_FPS_RANGE, &entry);
+ if (found) {
+ /*
+ * \todo Retrieve the AE FPS range from the libcamera metadata.
+ * As libcamera does not support that control, as a temporary
+ * workaround return what the framework asked.
+ */
+ const int32_t *data = entry.data.i32;
+ std::vector<int32_t> aeFpsTarget = {
+ data[0], data[1],
+ };
+ resultMetadata->addEntry(ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
+ aeFpsTarget.data(), aeFpsTarget.size());
+ }
value = ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE;
resultMetadata->addEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
--
2.30.0
More information about the libcamera-devel
mailing list