libgui: reset buffer count to max slots instead of returning BAD_VALUE.
CRs-Fixed: 3013293
Change-Id: Idfafcd6aa718054ff749bd5d1c7eb2630be0f109
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp
index 69345a9..6600c2c 100644
--- a/libs/gui/BufferQueueProducer.cpp
+++ b/libs/gui/BufferQueueProducer.cpp
@@ -164,13 +164,14 @@
return BAD_VALUE;
}
- int bufferCount = mCore->getMinUndequeuedBufferCountLocked();
- bufferCount += maxDequeuedBuffers;
+ int minUndequedBufferCount = mCore->getMinUndequeuedBufferCountLocked();
+ int bufferCount = minUndequedBufferCount + maxDequeuedBuffers;
if (bufferCount > BufferQueueDefs::NUM_BUFFER_SLOTS) {
BQ_LOGE("setMaxDequeuedBufferCount: bufferCount %d too large "
"(max %d)", bufferCount, BufferQueueDefs::NUM_BUFFER_SLOTS);
- return BAD_VALUE;
+ bufferCount = BufferQueueDefs::NUM_BUFFER_SLOTS;
+ maxDequeuedBuffers = bufferCount - minUndequedBufferCount;
}
const int minBufferSlots = mCore->getMinMaxBufferCountLocked();