Merge "Remove deprecated BufferQueue constructor"
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/include/gui/SurfaceComposerClient.h b/include/gui/SurfaceComposerClient.h
index 350b987..ac53f02 100644
--- a/include/gui/SurfaceComposerClient.h
+++ b/include/gui/SurfaceComposerClient.h
@@ -169,7 +169,7 @@
private:
mutable sp<CpuConsumer> mCpuConsumer;
- mutable sp<BufferQueue> mBufferQueue;
+ mutable sp<IGraphicBufferProducer> mProducer;
CpuConsumer::LockedBuffer mBuffer;
bool mHaveBuffer;
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() {
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index b628a15..95f4084 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -86,6 +86,10 @@
return mGraphicBufferProducer;
}
+void Surface::setSidebandStream(const sp<NativeHandle>& stream) {
+ mGraphicBufferProducer->setSidebandStream(stream);
+}
+
int Surface::hook_setSwapInterval(ANativeWindow* window, int interval) {
Surface* c = getSelf(window);
return c->setSwapInterval(interval);
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp
index 5fe99e8..6b20eaf 100644
--- a/libs/gui/SurfaceComposerClient.cpp
+++ b/libs/gui/SurfaceComposerClient.cpp
@@ -646,8 +646,9 @@
sp<CpuConsumer> ScreenshotClient::getCpuConsumer() const {
if (mCpuConsumer == NULL) {
- mBufferQueue = new BufferQueue();
- mCpuConsumer = new CpuConsumer(mBufferQueue, 1);
+ sp<IGraphicBufferConsumer> consumer;
+ BufferQueue::createBufferQueue(&mProducer, &consumer);
+ mCpuConsumer = new CpuConsumer(consumer, 1);
mCpuConsumer->setName(String8("ScreenshotClient"));
}
return mCpuConsumer;
@@ -667,7 +668,7 @@
mHaveBuffer = false;
}
- status_t err = s->captureScreen(display, mBufferQueue,
+ status_t err = s->captureScreen(display, mProducer,
reqWidth, reqHeight, minLayerZ, maxLayerZ, useIdentityTransform);
if (err == NO_ERROR) {