@@ -934,9 +934,12 @@ int CameraCapabilities::initializeStaticMetadata()
staticMetadata_->addEntry(ANDROID_CONTROL_SCENE_MODE_OVERRIDES,
sceneModesOverride);
- uint8_t aeLockAvailable = ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE;
- staticMetadata_->addEntry(ANDROID_CONTROL_AE_LOCK_AVAILABLE,
- aeLockAvailable);
+ setMetadata<uint8_t, bool>(
+ staticMetadata_.get(),
+ ANDROID_CONTROL_AE_LOCK_AVAILABLE,
+ controlsInfo, &controls::AeLock,
+ ControlRange::Max,
+ ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE);
uint8_t awbLockAvailable = ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE;
staticMetadata_->addEntry(ANDROID_CONTROL_AWB_LOCK_AVAILABLE,
@@ -784,6 +784,9 @@ int CameraDevice::processControls(Camera3RequestDescriptor *descriptor)
if (settings.getEntry(ANDROID_CONTROL_AE_MODE, &entry))
controls.set(controls::AeEnable, *entry.data.u8);
+ if (settings.getEntry(ANDROID_CONTROL_AE_LOCK, &entry))
+ controls.set(controls::AeLock, *entry.data.u8);
+
return 0;
}
@@ -1205,14 +1208,16 @@ CameraDevice::getResultMetadata(const Camera3RequestDescriptor &descriptor) cons
resultMetadata->addEntry(ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,
value32);
- value = ANDROID_CONTROL_AE_LOCK_OFF;
- resultMetadata->addEntry(ANDROID_CONTROL_AE_LOCK, value);
-
if (metadata.contains(controls::AeEnable)) {
uint8_t aeMode = metadata.get<bool>(controls::AeEnable);
resultMetadata->addEntry(ANDROID_CONTROL_AE_MODE, aeMode);
}
+ if (metadata.contains(controls::AeLock)) {
+ uint8_t aeLock = metadata.get<bool>(controls::AeLock);
+ resultMetadata->addEntry(ANDROID_CONTROL_AE_LOCK, aeLock);
+ }
+
if (settings.getEntry(ANDROID_CONTROL_AE_TARGET_FPS_RANGE, &entry))
/*
* \todo Retrieve the AE FPS range from the libcamera metadata.
Plumb the AeLock control into the HAL for CONTROL_AE_LOCK_AVAILABLE_MODES for static metadata. Bug: https://bugs.libcamera.org/show_bug.cgi?id=43 Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> TODO: check templates --- Changes in v4: - remove capability check - plumb into processControls Changes in v3: - use new setMetadata - rebase on camera capabilities refactor --- src/android/camera_capabilities.cpp | 9 ++++++--- src/android/camera_device.cpp | 11 ++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-)