diff options
author | 2017-11-27 10:16:00 -0800 | |
---|---|---|
committer | 2017-12-08 14:11:24 -0800 | |
commit | a81bc4975941bff8dbfcb858627dfcd01250c1ed (patch) | |
tree | fc3d502372f53fc1866fe1473051663e9ea3c510 | |
parent | 0530f87f62c8d2b483657427a4f7129500d8fa8d (diff) |
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
-rw-r--r-- | libs/gui/BufferItemConsumer.cpp | 10 | ||||
-rw-r--r-- | libs/gui/ConsumerBase.cpp | 54 | ||||
-rw-r--r-- | libs/gui/CpuConsumer.cpp | 10 | ||||
-rw-r--r-- | libs/gui/GLConsumer.cpp | 55 | ||||
-rw-r--r-- | libs/gui/include/gui/BufferItemConsumer.h | 4 | ||||
-rw-r--r-- | libs/gui/include/gui/ConsumerBase.h | 12 | ||||
-rw-r--r-- | libs/gui/include/gui/CpuConsumer.h | 4 | ||||
-rw-r--r-- | libs/gui/include/gui/GLConsumer.h | 12 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlingerConsumer.cpp | 6 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlingerConsumer.h | 2 |
10 files changed, 69 insertions, 100 deletions
diff --git a/libs/gui/BufferItemConsumer.cpp b/libs/gui/BufferItemConsumer.cpp index da4295609b..34e6d80061 100644 --- a/libs/gui/BufferItemConsumer.cpp +++ b/libs/gui/BufferItemConsumer.cpp @@ -49,16 +49,6 @@ BufferItemConsumer::BufferItemConsumer( BufferItemConsumer::~BufferItemConsumer() {} -void BufferItemConsumer::setName(const String8& name) { - Mutex::Autolock _l(mMutex); - if (mAbandoned) { - BI_LOGE("setName: BufferItemConsumer is abandoned!"); - return; - } - mName = name; - mConsumer->setConsumerName(name); -} - void BufferItemConsumer::setBufferFreedListener( const wp<BufferFreedListener>& listener) { Mutex::Autolock _l(mMutex); 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<FrameAvailableListener>& 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<NativeHandle> ConsumerBase::getSidebandStream() const { + Mutex::Autolock _l(mMutex); + if (mAbandoned) { + CB_LOGE("getSidebandStream: ConsumerBase is abandoned!"); + return nullptr; + } + + sp<NativeHandle> 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<OccupancyTracker::Segment>* outHistory) { Mutex::Autolock _l(mMutex); diff --git a/libs/gui/CpuConsumer.cpp b/libs/gui/CpuConsumer.cpp index baf6f7de8e..8edf60400c 100644 --- a/libs/gui/CpuConsumer.cpp +++ b/libs/gui/CpuConsumer.cpp @@ -44,16 +44,6 @@ CpuConsumer::CpuConsumer(const sp<IGraphicBufferConsumer>& bq, mConsumer->setMaxAcquiredBufferCount(static_cast<int32_t>(maxLockedBuffers)); } -void CpuConsumer::setName(const String8& name) { - Mutex::Autolock _l(mMutex); - if (mAbandoned) { - CC_LOGE("setName: CpuConsumer is abandoned!"); - return; - } - mName = name; - mConsumer->setConsumerName(name); -} - size_t CpuConsumer::findAcquiredBufferLocked(uintptr_t id) const { for (size_t i = 0; i < mMaxLockedBuffers; i++) { const auto& ab = mAcquiredBuffers[i]; diff --git a/libs/gui/GLConsumer.cpp b/libs/gui/GLConsumer.cpp index 14d9937142..6d9548c3c9 100644 --- a/libs/gui/GLConsumer.cpp +++ b/libs/gui/GLConsumer.cpp @@ -1086,61 +1086,8 @@ void GLConsumer::abandonLocked() { ConsumerBase::abandonLocked(); } -void GLConsumer::setName(const String8& name) { - Mutex::Autolock _l(mMutex); - if (mAbandoned) { - GLC_LOGE("setName: GLConsumer is abandoned!"); - return; - } - mName = name; - mConsumer->setConsumerName(name); -} - -status_t GLConsumer::setDefaultBufferFormat(PixelFormat defaultFormat) { - Mutex::Autolock lock(mMutex); - if (mAbandoned) { - GLC_LOGE("setDefaultBufferFormat: GLConsumer is abandoned!"); - return NO_INIT; - } - return mConsumer->setDefaultBufferFormat(defaultFormat); -} - -status_t GLConsumer::setDefaultBufferDataSpace( - android_dataspace defaultDataSpace) { - Mutex::Autolock lock(mMutex); - if (mAbandoned) { - GLC_LOGE("setDefaultBufferDataSpace: GLConsumer is abandoned!"); - return NO_INIT; - } - return mConsumer->setDefaultBufferDataSpace(defaultDataSpace); -} - status_t GLConsumer::setConsumerUsageBits(uint64_t usage) { - Mutex::Autolock lock(mMutex); - if (mAbandoned) { - GLC_LOGE("setConsumerUsageBits: GLConsumer is abandoned!"); - return NO_INIT; - } - usage |= DEFAULT_USAGE_FLAGS; - return mConsumer->setConsumerUsageBits(usage); -} - -status_t GLConsumer::setTransformHint(uint32_t hint) { - Mutex::Autolock lock(mMutex); - if (mAbandoned) { - GLC_LOGE("setTransformHint: GLConsumer is abandoned!"); - return NO_INIT; - } - return mConsumer->setTransformHint(hint); -} - -status_t GLConsumer::setMaxAcquiredBufferCount(int maxAcquiredBuffers) { - Mutex::Autolock lock(mMutex); - if (mAbandoned) { - GLC_LOGE("setMaxAcquiredBufferCount: GLConsumer is abandoned!"); - return NO_INIT; - } - return mConsumer->setMaxAcquiredBufferCount(maxAcquiredBuffers); + return ConsumerBase::setConsumerUsageBits(usage | DEFAULT_USAGE_FLAGS); } void GLConsumer::dumpLocked(String8& result, const char* prefix) const diff --git a/libs/gui/include/gui/BufferItemConsumer.h b/libs/gui/include/gui/BufferItemConsumer.h index d9c57757f5..a905610ee2 100644 --- a/libs/gui/include/gui/BufferItemConsumer.h +++ b/libs/gui/include/gui/BufferItemConsumer.h @@ -57,10 +57,6 @@ class BufferItemConsumer: public ConsumerBase ~BufferItemConsumer() override; - // set the name of the BufferItemConsumer that will be used to identify it in - // log messages. - void setName(const String8& name); - // setBufferFreedListener sets the listener object that will be notified // when an old buffer is being freed. void setBufferFreedListener(const wp<BufferFreedListener>& listener); diff --git a/libs/gui/include/gui/ConsumerBase.h b/libs/gui/include/gui/ConsumerBase.h index 4a86021a06..366ced380b 100644 --- a/libs/gui/include/gui/ConsumerBase.h +++ b/libs/gui/include/gui/ConsumerBase.h @@ -89,6 +89,18 @@ public: // See IGraphicBufferConsumer::setDefaultBufferDataSpace status_t setDefaultBufferDataSpace(android_dataspace defaultDataSpace); + // See IGraphicBufferConsumer::setConsumerUsageBits + status_t setConsumerUsageBits(uint64_t usage); + + // See IGraphicBufferConsumer::setTransformHint + status_t setTransformHint(uint32_t hint); + + // See IGraphicBufferConsumer::setMaxAcquiredBufferCount + status_t setMaxAcquiredBufferCount(int maxAcquiredBuffers); + + // See IGraphicBufferConsumer::getSidebandStream + sp<NativeHandle> getSidebandStream() const; + // See IGraphicBufferConsumer::getOccupancyHistory status_t getOccupancyHistory(bool forceFlush, std::vector<OccupancyTracker::Segment>* outHistory); diff --git a/libs/gui/include/gui/CpuConsumer.h b/libs/gui/include/gui/CpuConsumer.h index b50862fa50..d375611e5b 100644 --- a/libs/gui/include/gui/CpuConsumer.h +++ b/libs/gui/include/gui/CpuConsumer.h @@ -94,10 +94,6 @@ class CpuConsumer : public ConsumerBase CpuConsumer(const sp<IGraphicBufferConsumer>& bq, size_t maxLockedBuffers, bool controlledByApp = false); - // set the name of the CpuConsumer that will be used to identify it in - // log messages. - void setName(const String8& name); - // Gets the next graphics buffer from the producer and locks it for CPU use, // filling out the passed-in locked buffer structure with the native pointer // and metadata. Returns BAD_VALUE if no new buffer is available, and diff --git a/libs/gui/include/gui/GLConsumer.h b/libs/gui/include/gui/GLConsumer.h index 75f2ccaaea..c73c09b8c9 100644 --- a/libs/gui/include/gui/GLConsumer.h +++ b/libs/gui/include/gui/GLConsumer.h @@ -202,17 +202,9 @@ public: // current texture buffer. status_t doGLFenceWait() const; - // set the name of the GLConsumer that will be used to identify it in - // log messages. - void setName(const String8& name); - - // These functions call the corresponding BufferQueue implementation - // so the refactoring can proceed smoothly - status_t setDefaultBufferFormat(PixelFormat defaultFormat); - status_t setDefaultBufferDataSpace(android_dataspace defaultDataSpace); + // setConsumerUsageBits overrides the ConsumerBase method to OR + // DEFAULT_USAGE_FLAGS to usage. status_t setConsumerUsageBits(uint64_t usage); - status_t setTransformHint(uint32_t hint); - status_t setMaxAcquiredBufferCount(int maxAcquiredBuffers); // detachFromContext detaches the GLConsumer from the calling thread's // current OpenGL ES context. This context must be the same as the context diff --git a/services/surfaceflinger/SurfaceFlingerConsumer.cpp b/services/surfaceflinger/SurfaceFlingerConsumer.cpp index e17bb58b31..d5ba09d174 100644 --- a/services/surfaceflinger/SurfaceFlingerConsumer.cpp +++ b/services/surfaceflinger/SurfaceFlingerConsumer.cpp @@ -134,12 +134,6 @@ const Region& SurfaceFlingerConsumer::getSurfaceDamage() const { return mSurfaceDamage; } -sp<NativeHandle> SurfaceFlingerConsumer::getSidebandStream() const { - sp<NativeHandle> stream; - mConsumer->getSidebandStream(&stream); - return stream; -} - // We need to determine the time when a buffer acquired now will be // displayed. This can be calculated: // time when previous buffer's actual-present fence was signaled diff --git a/services/surfaceflinger/SurfaceFlingerConsumer.h b/services/surfaceflinger/SurfaceFlingerConsumer.h index 53b4915426..7397f2d6aa 100644 --- a/services/surfaceflinger/SurfaceFlingerConsumer.h +++ b/services/surfaceflinger/SurfaceFlingerConsumer.h @@ -76,8 +76,6 @@ public: // ConsumerBase::setFrameAvailableListener(). void setContentsChangedListener(const wp<ContentsChangedListener>& listener); - sp<NativeHandle> getSidebandStream() const; - nsecs_t computeExpectedPresent(const DispSync& dispSync); sp<Fence> getPrevFinalReleaseFence() const; |