From a81bc4975941bff8dbfcb858627dfcd01250c1ed Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 27 Nov 2017 10:16:00 -0800 Subject: libgui: add more IGBC wrappers to ConsumerBase Add ConsumerBase::setName ConsumerBase::setConsumerUsageBits ConsumerBase::setTransformHint ConsumerBase::setMaxAcquiredBufferCount ConsumerBase::getSidebandStream and remove BufferItemConsumer::setName CpuConsumer::setName GLConsumer::setName GLConsumer::setDefaultBufferFormat GLConsumer::setDefaultBufferDataSpace GLConsumer::setTransformHint GLConsumer::setMaxAcquiredBufferCount SurfaceFlingerConsumer::getSidebandStream at the same time. Test: libgui_test Change-Id: I0b81b7759d6d5a7a89eefdfe95440b262e7fa424 --- libs/gui/ConsumerBase.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'libs/gui/ConsumerBase.cpp') diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index 7aa7872513..f9e292e199 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -182,6 +182,16 @@ bool ConsumerBase::isAbandoned() { return mAbandoned; } +void ConsumerBase::setName(const String8& name) { + Mutex::Autolock _l(mMutex); + if (mAbandoned) { + CB_LOGE("setName: ConsumerBase is abandoned!"); + return; + } + mName = name; + mConsumer->setConsumerName(name); +} + void ConsumerBase::setFrameAvailableListener( const wp& listener) { CB_LOGV("setFrameAvailableListener"); @@ -237,6 +247,50 @@ status_t ConsumerBase::setDefaultBufferDataSpace( return mConsumer->setDefaultBufferDataSpace(defaultDataSpace); } +status_t ConsumerBase::setConsumerUsageBits(uint64_t usage) { + Mutex::Autolock lock(mMutex); + if (mAbandoned) { + CB_LOGE("setConsumerUsageBits: ConsumerBase is abandoned!"); + return NO_INIT; + } + return mConsumer->setConsumerUsageBits(usage); +} + +status_t ConsumerBase::setTransformHint(uint32_t hint) { + Mutex::Autolock lock(mMutex); + if (mAbandoned) { + CB_LOGE("setTransformHint: ConsumerBase is abandoned!"); + return NO_INIT; + } + return mConsumer->setTransformHint(hint); +} + +status_t ConsumerBase::setMaxAcquiredBufferCount(int maxAcquiredBuffers) { + Mutex::Autolock lock(mMutex); + if (mAbandoned) { + CB_LOGE("setMaxAcquiredBufferCount: ConsumerBase is abandoned!"); + return NO_INIT; + } + return mConsumer->setMaxAcquiredBufferCount(maxAcquiredBuffers); +} + +sp ConsumerBase::getSidebandStream() const { + Mutex::Autolock _l(mMutex); + if (mAbandoned) { + CB_LOGE("getSidebandStream: ConsumerBase is abandoned!"); + return nullptr; + } + + sp stream; + status_t err = mConsumer->getSidebandStream(&stream); + if (err != NO_ERROR) { + CB_LOGE("failed to get sideband stream: %d", err); + return nullptr; + } + + return stream; +} + status_t ConsumerBase::getOccupancyHistory(bool forceFlush, std::vector* outHistory) { Mutex::Autolock _l(mMutex); -- cgit v1.2.3-59-g8ed1b