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