[libcamera-devel] [PATCH] android: camera_device: Set AE precapture trigger according to request
paul.elder at ideasonboard.com
paul.elder at ideasonboard.com
Wed Jan 27 11:37:48 CET 2021
Hi Laurent,
On Wed, Jan 27, 2021 at 12:32:50PM +0200, Laurent Pinchart wrote:
> Hi Paul,
>
> Thank you for the patch.
>
> On Wed, Jan 27, 2021 at 07:14:35PM +0900, Paul Elder wrote:
> > 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 at ideasonboard.com>
> > ---
> > src/android/camera_device.cpp | 13 ++++++++++---
> > 1 file changed, 10 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> > index 82bf0d3a..941e89a8 100644
> > --- a/src/android/camera_device.cpp
> > +++ b/src/android/camera_device.cpp
> > @@ -1806,6 +1806,13 @@ void CameraDevice::requestComplete(Request *request)
> > uint64_t timestamp = buffers.begin()->second->metadata().timestamp;
> > resultMetadata = getResultMetadata(descriptor, timestamp);
> >
> > + camera_metadata_ro_entry_t entry;
> > + /* \todo Handle IPA appropriately */
> > + int ret = descriptor->settings_.getEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER, &entry);
> > + if (ret)
> > + resultMetadata->updateEntry(ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,
> > + entry.data.u8, 1);
>
> Should this be moved to getResultMetadata() and replace the existing
> code that sets ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER ?
Oh yeah that would probably be better.
Thanks,
Paul
> > +
> > /* Handle any JPEG compression. */
> > for (unsigned int i = 0; i < descriptor->numBuffers_; ++i) {
> > CameraStream *cameraStream =
> > @@ -1832,9 +1839,9 @@ void CameraDevice::requestComplete(Request *request)
> > continue;
> > }
> >
> > - int ret = cameraStream->process(*buffer, &mapped,
> > - descriptor->settings_,
> > - resultMetadata.get());
> > + ret = cameraStream->process(*buffer, &mapped,
> > + descriptor->settings_,
> > + resultMetadata.get());
> > if (ret) {
> > status = CAMERA3_BUFFER_STATUS_ERROR;
> > continue;
More information about the libcamera-devel
mailing list