cameraservice: decrease zsl metadata queue size by 1
Zsl buffer needs to be longer than metadata queue to ensure that
oldest metadata can always find a match in buffer queue.
Since we don't want to add memory overhead, decrease metadata
queue size by one serves the same purpose.
bug 17264283
Change-Id: Ic53441cc29c98e57d3345f5845d92839d0ce6faf
diff --git a/services/camera/libcameraservice/api1/client2/ZslProcessor3.cpp b/services/camera/libcameraservice/api1/client2/ZslProcessor3.cpp
index b388079..5cf69bd 100644
--- a/services/camera/libcameraservice/api1/client2/ZslProcessor3.cpp
+++ b/services/camera/libcameraservice/api1/client2/ZslProcessor3.cpp
@@ -78,8 +78,12 @@
ALOGV("%s: Initialize buffer queue and frame list depth based on max pipeline depth (%d)",
__FUNCTION__, pipelineMaxDepth);
- mBufferQueueDepth = pipelineMaxDepth + 1;
- mFrameListDepth = pipelineMaxDepth + 1;
+ // Need to keep buffer queue longer than metadata queue because sometimes buffer arrives
+ // earlier than metadata which causes the buffer corresponding to oldest metadata being
+ // removed.
+ mFrameListDepth = pipelineMaxDepth;
+ mBufferQueueDepth = mFrameListDepth + 1;
+
mZslQueue.insertAt(0, mBufferQueueDepth);
mFrameList.insertAt(0, mFrameListDepth);