BufferItemConsumer: Use IGBC instead of BQ

Change-Id: Id1756ac62954ba412f2c23c5fa6e5d760c299347
diff --git a/include/gui/BufferItemConsumer.h b/include/gui/BufferItemConsumer.h
index 2c58ca5..5494ff1 100644
--- a/include/gui/BufferItemConsumer.h
+++ b/include/gui/BufferItemConsumer.h
@@ -44,7 +44,7 @@
 
     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 @@
     // access at the same time.
     // controlledByApp tells whether this consumer is controlled by the
     // application.
-    BufferItemConsumer(const sp<BufferQueue>& bq, uint32_t consumerUsage,
-            int bufferCount = MIN_UNDEQUEUED_BUFFERS,
+    BufferItemConsumer(const sp<IGraphicBufferConsumer>& 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 74a65ed..fe50c55 100644
--- a/libs/gui/BufferItemConsumer.cpp
+++ b/libs/gui/BufferItemConsumer.cpp
@@ -29,19 +29,19 @@
 
 namespace android {
 
-BufferItemConsumer::BufferItemConsumer(const sp<BufferQueue>& bq,
-        uint32_t consumerUsage, int bufferCount, bool controlledByApp) :
-    ConsumerBase(bq, controlledByApp)
+BufferItemConsumer::BufferItemConsumer(
+        const sp<IGraphicBufferConsumer>& 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() {