Message ID | 20210127101435.3903-1-paul.elder@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
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@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 ? > + > /* 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;
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@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;
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); + /* 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;
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> --- src/android/camera_device.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)