Camera: Reset metadata entry before ZSL query
Reset the metadata entry argument before doing consecutive
queries without checking the query status.
In case the query fails, we could access a value that was
set from a previous successful query.
This can affect the ZSL status flag, frame counting and
eventually cause sequence callbacks to get skipped.
Bug: 179265466
Test: Camera CTS
Change-Id: I4b6834d17235c4845c9b0ff6e465467c5e9be8a0
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 7606d7d..3204217 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -4802,6 +4802,7 @@
ATRACE_ASYNC_BEGIN("still capture", mNextRequests[i].halRequest.frame_number);
}
+ e = camera_metadata_ro_entry_t();
find_camera_metadata_ro_entry(settings, ANDROID_CONTROL_ENABLE_ZSL, &e);
if ((e.count > 0) && (e.data.u8[0] == ANDROID_CONTROL_ENABLE_ZSL_TRUE)) {
isZslCapture = true;