Camera2: Fix off-by-one error in ZSL selection.
Bug: 7258126
Change-Id: Ie6da4645c46a7bb0dbd11d7c6183e904f41f74fd
diff --git a/services/camera/libcameraservice/camera2/ZslProcessor.cpp b/services/camera/libcameraservice/camera2/ZslProcessor.cpp
index 5208574..1937955 100644
--- a/services/camera/libcameraservice/camera2/ZslProcessor.cpp
+++ b/services/camera/libcameraservice/camera2/ZslProcessor.cpp
@@ -254,11 +254,14 @@
if (mZslQueueTail != mZslQueueHead) {
CameraMetadata request;
size_t index = mZslQueueTail;
- while (request.isEmpty() && index != mZslQueueHead) {
- request = mZslQueue[index].frame;
+ while (index != mZslQueueHead) {
+ if (!mZslQueue[index].frame.isEmpty()) {
+ request = mZslQueue[index].frame;
+ break;
+ }
index = (index + 1) % kZslBufferDepth;
}
- if (request.isEmpty()) {
+ if (index == mZslQueueHead) {
ALOGV("%s: ZSL queue has no valid frames to send yet.",
__FUNCTION__);
return NOT_ENOUGH_DATA;