diff --git a/include/gui/BufferItemConsumer.h b/include/gui/BufferItemConsumer.h index 2c58ca5e2..5494ff1f3 100644 --- a/include/gui/BufferItemConsumer.h +++ b/include/gui/BufferItemConsumer.h @@ -44,7 +44,7 @@ class BufferItemConsumer: public ConsumerBase typedef BufferQueue::BufferItem BufferItem; - enum { MIN_UNDEQUEUED_BUFFERS = -1 }; + enum { DEFAULT_MAX_BUFFERS = -1 }; enum { INVALID_BUFFER_SLOT = BufferQueue::INVALID_BUFFER_SLOT }; enum { NO_BUFFER_AVAILABLE = BufferQueue::NO_BUFFER_AVAILABLE }; @@ -54,8 +54,8 @@ class BufferItemConsumer: public ConsumerBase // access at the same time. // controlledByApp tells whether this consumer is controlled by the // application. - BufferItemConsumer(const sp& bq, uint32_t consumerUsage, - int bufferCount = MIN_UNDEQUEUED_BUFFERS, + BufferItemConsumer(const sp& consumer, + uint32_t consumerUsage, int bufferCount = DEFAULT_MAX_BUFFERS, bool controlledByApp = false); virtual ~BufferItemConsumer(); diff --git a/libs/gui/BufferItemConsumer.cpp b/libs/gui/BufferItemConsumer.cpp index 74a65ed8d..fe50c55f5 100644 --- a/libs/gui/BufferItemConsumer.cpp +++ b/libs/gui/BufferItemConsumer.cpp @@ -29,19 +29,19 @@ namespace android { -BufferItemConsumer::BufferItemConsumer(const sp& bq, - uint32_t consumerUsage, int bufferCount, bool controlledByApp) : - ConsumerBase(bq, controlledByApp) +BufferItemConsumer::BufferItemConsumer( + const sp& consumer, uint32_t consumerUsage, + int bufferCount, bool controlledByApp) : + ConsumerBase(consumer, controlledByApp) { - if (bufferCount == MIN_UNDEQUEUED_BUFFERS) { - status_t res; - res = bq->query(NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS, &bufferCount); - LOG_ALWAYS_FATAL_IF(res != OK || bufferCount < 0, - "Failed to query min buffer count"); + status_t err = mConsumer->setConsumerUsageBits(consumerUsage); + LOG_ALWAYS_FATAL_IF(err != OK, + "Failed to set consumer usage bits to %#x", consumerUsage); + if (bufferCount != DEFAULT_MAX_BUFFERS) { + err = mConsumer->setMaxAcquiredBufferCount(bufferCount); + LOG_ALWAYS_FATAL_IF(err != OK, + "Failed to set max acquired buffer count to %d", bufferCount); } - - mConsumer->setConsumerUsageBits(consumerUsage); - mConsumer->setMaxAcquiredBufferCount(bufferCount); } BufferItemConsumer::~BufferItemConsumer() {