Loading libs/gui/BufferItemConsumer.cpp +23 −18 Original line number Diff line number Diff line Loading @@ -54,33 +54,38 @@ sp<BufferItemConsumer> BufferItemConsumer::create(const sp<IGraphicBufferConsume BufferItemConsumer::BufferItemConsumer(uint64_t consumerUsage, int bufferCount, bool controlledByApp, bool isConsumerSurfaceFlinger) : ConsumerBase(controlledByApp, isConsumerSurfaceFlinger) { initialize(consumerUsage, bufferCount); } : ConsumerBase(controlledByApp, isConsumerSurfaceFlinger), mConsumerUsage(consumerUsage), mBufferCount(bufferCount) {} BufferItemConsumer::BufferItemConsumer(const sp<IGraphicBufferProducer>& producer, const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, int bufferCount, bool controlledByApp) : ConsumerBase(producer, consumer, controlledByApp) { initialize(consumerUsage, bufferCount); } : ConsumerBase(producer, consumer, controlledByApp), mConsumerUsage(consumerUsage), mBufferCount(bufferCount) {} BufferItemConsumer::BufferItemConsumer(const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, int bufferCount, bool controlledByApp) : ConsumerBase(consumer, controlledByApp), mConsumerUsage(consumerUsage), mBufferCount(bufferCount) {} BufferItemConsumer::BufferItemConsumer( const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, int bufferCount, bool controlledByApp) : ConsumerBase(consumer, controlledByApp) { initialize(consumerUsage, bufferCount); void BufferItemConsumer::onFirstRef() { ConsumerBase::onFirstRef(); initializeConsumer(); } void BufferItemConsumer::initialize(uint64_t consumerUsage, int bufferCount) { status_t err = mConsumer->setConsumerUsageBits(consumerUsage); LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set consumer usage bits to %#" PRIx64, consumerUsage); if (bufferCount != DEFAULT_MAX_BUFFERS) { err = mConsumer->setMaxAcquiredBufferCount(bufferCount); void BufferItemConsumer::initializeConsumer() { status_t err = mConsumer->setConsumerUsageBits(mConsumerUsage); LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set consumer usage bits to %#" PRIx64, mConsumerUsage); if (mBufferCount != DEFAULT_MAX_BUFFERS) { err = mConsumer->setMaxAcquiredBufferCount(mBufferCount); LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set max acquired buffer count to %d", bufferCount); mBufferCount); } } Loading libs/gui/include/gui/BufferItemConsumer.h +6 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ class BufferItemConsumer: public ConsumerBase status_t releaseBuffer(const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence = Fence::NO_FENCE); void onFirstRef() override; protected: // This should only be used by BLASTBufferQueue: BufferItemConsumer(const sp<IGraphicBufferProducer>& producer, Loading @@ -119,13 +121,16 @@ protected: private: friend sp<BufferItemConsumer>; void initialize(uint64_t consumerUsage, int bufferCount); void initializeConsumer(); status_t releaseBufferSlotLocked(int slotIndex, const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence); void freeBufferLocked(int slotIndex) override; uint64_t mConsumerUsage; int mBufferCount; // mBufferFreedListener is the listener object that will be called when // an old buffer is being freed. If it is not NULL it will be called from // freeBufferLocked. Loading Loading
libs/gui/BufferItemConsumer.cpp +23 −18 Original line number Diff line number Diff line Loading @@ -54,33 +54,38 @@ sp<BufferItemConsumer> BufferItemConsumer::create(const sp<IGraphicBufferConsume BufferItemConsumer::BufferItemConsumer(uint64_t consumerUsage, int bufferCount, bool controlledByApp, bool isConsumerSurfaceFlinger) : ConsumerBase(controlledByApp, isConsumerSurfaceFlinger) { initialize(consumerUsage, bufferCount); } : ConsumerBase(controlledByApp, isConsumerSurfaceFlinger), mConsumerUsage(consumerUsage), mBufferCount(bufferCount) {} BufferItemConsumer::BufferItemConsumer(const sp<IGraphicBufferProducer>& producer, const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, int bufferCount, bool controlledByApp) : ConsumerBase(producer, consumer, controlledByApp) { initialize(consumerUsage, bufferCount); } : ConsumerBase(producer, consumer, controlledByApp), mConsumerUsage(consumerUsage), mBufferCount(bufferCount) {} BufferItemConsumer::BufferItemConsumer(const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, int bufferCount, bool controlledByApp) : ConsumerBase(consumer, controlledByApp), mConsumerUsage(consumerUsage), mBufferCount(bufferCount) {} BufferItemConsumer::BufferItemConsumer( const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage, int bufferCount, bool controlledByApp) : ConsumerBase(consumer, controlledByApp) { initialize(consumerUsage, bufferCount); void BufferItemConsumer::onFirstRef() { ConsumerBase::onFirstRef(); initializeConsumer(); } void BufferItemConsumer::initialize(uint64_t consumerUsage, int bufferCount) { status_t err = mConsumer->setConsumerUsageBits(consumerUsage); LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set consumer usage bits to %#" PRIx64, consumerUsage); if (bufferCount != DEFAULT_MAX_BUFFERS) { err = mConsumer->setMaxAcquiredBufferCount(bufferCount); void BufferItemConsumer::initializeConsumer() { status_t err = mConsumer->setConsumerUsageBits(mConsumerUsage); LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set consumer usage bits to %#" PRIx64, mConsumerUsage); if (mBufferCount != DEFAULT_MAX_BUFFERS) { err = mConsumer->setMaxAcquiredBufferCount(mBufferCount); LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set max acquired buffer count to %d", bufferCount); mBufferCount); } } Loading
libs/gui/include/gui/BufferItemConsumer.h +6 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ class BufferItemConsumer: public ConsumerBase status_t releaseBuffer(const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence = Fence::NO_FENCE); void onFirstRef() override; protected: // This should only be used by BLASTBufferQueue: BufferItemConsumer(const sp<IGraphicBufferProducer>& producer, Loading @@ -119,13 +121,16 @@ protected: private: friend sp<BufferItemConsumer>; void initialize(uint64_t consumerUsage, int bufferCount); void initializeConsumer(); status_t releaseBufferSlotLocked(int slotIndex, const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence); void freeBufferLocked(int slotIndex) override; uint64_t mConsumerUsage; int mBufferCount; // mBufferFreedListener is the listener object that will be called when // an old buffer is being freed. If it is not NULL it will be called from // freeBufferLocked. Loading