QCamera3: Support early shutter callback for HDR+
Support early shutter callback for HDR+ requests to unblock following
requests.
Test: GCA
Bug: 38377972
Change-Id: I8164f14c1a2bea47cb0500d294564b51f56b7d7f
diff --git a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
index ab6628c..2d9ca72 100644
--- a/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/msm8998/QCamera2/HAL3/QCamera3HWI.cpp
@@ -3666,7 +3666,7 @@
LOGD("Iterator Frame = %d urgent frame = %d",
i->frame_number, urgent_frame_number);
- if ((!i->input_buffer) && (i->frame_number < urgent_frame_number) &&
+ if ((!i->input_buffer) && (!i->hdrplus) && (i->frame_number < urgent_frame_number) &&
(i->partial_result_cnt == 0)) {
LOGE("Error: HAL missed urgent metadata for frame number %d",
i->frame_number);
@@ -14654,6 +14654,14 @@
handleCameraDeviceError();
}
+void QCamera3HardwareInterface::onShutter(uint32_t requestId, int64_t apSensorTimestampNs)
+{
+ ALOGV("%s: %d: Received a shutter for HDR+ request %d timestamp %" PRId64, __FUNCTION__,
+ __LINE__, requestId, apSensorTimestampNs);
+
+ mShutterDispatcher.markShutterReady(requestId, apSensorTimestampNs);
+}
+
void QCamera3HardwareInterface::onCaptureResult(pbcamera::CaptureResult *result,
const camera_metadata_t &resultMetadata)
{
@@ -14733,17 +14741,6 @@
strerror(-res), res);
}
- // Find the timestamp
- camera_metadata_ro_entry_t entry;
- res = find_camera_metadata_ro_entry(updatedResultMetadata,
- ANDROID_SENSOR_TIMESTAMP, &entry);
- if (res != OK) {
- ALOGE("%s: Cannot find sensor timestamp for frame number %d: %s (%d)",
- __FUNCTION__, result->requestId, strerror(-res), res);
- } else {
- mShutterDispatcher.markShutterReady(result->requestId, entry.data.i64[0]);
- }
-
// Send HDR+ metadata to framework.
{
pthread_mutex_lock(&mMutex);