Camera: fix triggerId logic
Fix missing triggerId introduced by previous cleanup change.
bug 17108154
bug 17053130
Change-Id: Ifda55d5fbe992d98f335a8427aa256d78a856586
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index ed350c1..0ca7f6d 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -2129,6 +2129,8 @@
mPaused(true),
mFrameNumber(0),
mLatestRequestId(NAME_NOT_FOUND),
+ mCurrentAfTriggerId(0),
+ mCurrentPreCaptureTriggerId(0),
mRepeatingLastFrameNumber(NO_IN_FLIGHT_REPEATING_FRAMES) {
mStatusId = statusTracker->addComponent();
}
@@ -2611,6 +2613,8 @@
if (nextRequest != NULL) {
nextRequest->mResultExtras.frameNumber = mFrameNumber++;
+ nextRequest->mResultExtras.afTriggerId = mCurrentAfTriggerId;
+ nextRequest->mResultExtras.precaptureTriggerId = mCurrentPreCaptureTriggerId;
}
return nextRequest;
}
@@ -2690,8 +2694,13 @@
if (tag == ANDROID_CONTROL_AF_TRIGGER_ID || tag == ANDROID_CONTROL_AE_PRECAPTURE_ID) {
bool isAeTrigger = (trigger.metadataTag == ANDROID_CONTROL_AE_PRECAPTURE_ID);
uint32_t triggerId = static_cast<uint32_t>(trigger.entryValue);
- isAeTrigger ? request->mResultExtras.precaptureTriggerId = triggerId :
- request->mResultExtras.afTriggerId = triggerId;
+ if (isAeTrigger) {
+ request->mResultExtras.precaptureTriggerId = triggerId;
+ mCurrentPreCaptureTriggerId = triggerId;
+ } else {
+ request->mResultExtras.afTriggerId = triggerId;
+ mCurrentAfTriggerId = triggerId;
+ }
if (parent->mDeviceVersion >= CAMERA_DEVICE_API_VERSION_3_2) {
continue; // Trigger ID tag is deprecated since device HAL 3.2
}
diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h
index 7656237..539d919 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.h
+++ b/services/camera/libcameraservice/device3/Camera3Device.h
@@ -484,6 +484,8 @@
TriggerMap mTriggerMap;
TriggerMap mTriggerRemovedMap;
TriggerMap mTriggerReplacedMap;
+ uint32_t mCurrentAfTriggerId;
+ uint32_t mCurrentPreCaptureTriggerId;
int64_t mRepeatingLastFrameNumber;
};