android: camera_device: Set AE precapture trigger according to request

Set the AE precapture triggler tag in the android result metadata
according to what was passed in the request metadata.

This allows the following CTS test to pass:
- android.hardware.camera2.cts.StillCaptureTest#testAePrecaptureTriggerCancelJpegCapture

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Paul Elder 2021-01-26 09:47:33 +09:00
parent ab72e6641c
commit 958c80a4f1

View file

@ -1927,6 +1927,7 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
int64_t timestamp)
{
const ControlList &metadata = descriptor->request_->metadata();
camera_metadata_ro_entry_t entry;
/*
* \todo Keep this in sync with the actual number of entries.
@ -1965,8 +1966,10 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
aeFpsTarget.data(), aeFpsTarget.size());
value = ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE;
/* \todo Handle IPA appropriately */
bool ret = descriptor->settings_.getEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, &entry);
resultMetadata->addEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
&value, 1);
ret ? entry.data.u8 : &value, 1);
value = ANDROID_CONTROL_AE_STATE_CONVERGED;
resultMetadata->addEntry(ANDROID_CONTROL_AE_STATE, &value, 1);
@ -2010,8 +2013,7 @@ CameraDevice::getResultMetadata(Camera3RequestDescriptor *descriptor,
value = ANDROID_FLASH_STATE_UNAVAILABLE;
resultMetadata->addEntry(ANDROID_FLASH_STATE, &value, 1);
camera_metadata_ro_entry_t entry;
int ret = descriptor->settings_.getEntry(ANDROID_LENS_APERTURE, &entry);
ret = descriptor->settings_.getEntry(ANDROID_LENS_APERTURE, &entry);
if (ret)
resultMetadata->addEntry(ANDROID_LENS_APERTURE, entry.data.f, 1);