CpuConsumer: Add optional asynchronous mode
Bug: 8290146
Bug: 8291751
Change-Id: I9c8ac4bff38b0411e987a204e540d018dba6d0b4
diff --git a/include/gui/CpuConsumer.h b/include/gui/CpuConsumer.h
index a7fdc0a..93dff32 100644
--- a/include/gui/CpuConsumer.h
+++ b/include/gui/CpuConsumer.h
@@ -57,7 +57,7 @@
// Create a new CPU consumer. The maxLockedBuffers parameter specifies
// how many buffers can be locked for user access at the same time.
- CpuConsumer(uint32_t maxLockedBuffers);
+ CpuConsumer(uint32_t maxLockedBuffers, bool synchronousMode = true);
virtual ~CpuConsumer();
diff --git a/libs/gui/CpuConsumer.cpp b/libs/gui/CpuConsumer.cpp
index 340cd14..1ee6673 100644
--- a/libs/gui/CpuConsumer.cpp
+++ b/libs/gui/CpuConsumer.cpp
@@ -29,7 +29,7 @@
namespace android {
-CpuConsumer::CpuConsumer(uint32_t maxLockedBuffers) :
+CpuConsumer::CpuConsumer(uint32_t maxLockedBuffers, bool synchronousMode) :
ConsumerBase(new BufferQueue(true) ),
mMaxLockedBuffers(maxLockedBuffers),
mCurrentLockedBuffers(0)
@@ -38,7 +38,7 @@
mLockedSlots[i].mBufferPointer = NULL;
}
- mBufferQueue->setSynchronousMode(true);
+ mBufferQueue->setSynchronousMode(synchronousMode);
mBufferQueue->setConsumerUsageBits(GRALLOC_USAGE_SW_READ_OFTEN);
mBufferQueue->setMaxAcquiredBufferCount(maxLockedBuffers);
}