Camera: Increase buffer count limit for prepareBuffer
During buffer preparation, the number of buffers could exceed HAL
max_buffers. Do not treat this case as error.
Test: Run testConstrainedHighSpeedRecording
Bug: 192871011
Change-Id: I23f1d372b944e7633f293262dd21f9cfdd172c54
diff --git a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
index 221bebb..225dee9 100644
--- a/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3OutputStream.cpp
@@ -654,7 +654,8 @@
* Then there is circular locking dependency.
*/
sp<Surface> consumer = mConsumer;
- size_t remainingBuffers = camera_stream::max_buffers - mHandoutTotalBufferCount;
+ size_t remainingBuffers = (mState == STATE_PREPARING ? mTotalBufferCount :
+ camera_stream::max_buffers) - mHandoutTotalBufferCount;
mLock.unlock();
std::unique_lock<std::mutex> batchLock(mBatchLock);