[libcamera-devel] [RFC PATCH 07/14] android: Plumb AeLock control

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Jun 28 03:32:47 CEST 2021


Hi Paul,

Thank you for the patch.

On Fri, Jun 18, 2021 at 07:33:44PM +0900, Paul Elder wrote:
> 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 at ideasonboard.com>
> 
> ---
> TODO: plumb result metadata

Please record this in the bug once this patch gets merged (or address
the issue in this series :-))

> ---
>  src/android/camera_device.cpp | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index 3446cdb6..3add5bc6 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -1010,6 +1010,14 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
>  				  sceneModesOverride);
>  
>  	uint8_t aeLockAvailable = ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE;
> +	const auto &aeLockInfo = controlsInfo.find(&controls::AeLock);
> +	if (aeLockInfo != controlsInfo.end()) {
> +		aeLockAvailable = aeLockInfo->second.max().get<bool>();
> +	}

It makes little sense for a camera to expose AeLock with only false as a
supported value. I'd write this

	if (controlsInfo.find(&controls::AeLock) != controlsInfo.end())
		aeLockAvailable = ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE;

The AeLock documentation should state that both true and false need to
be supported when the control is reported by the camera.

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> +	if (!aeLockAvailable) {
> +		capabilities[ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE] = false;
> +		capabilities[ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR] = false;
> +	}
>  	staticMetadata_->addEntry(ANDROID_CONTROL_AE_LOCK_AVAILABLE,
>  				  aeLockAvailable);
>  

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list