diff options
| author | 2015-04-07 22:58:47 +0000 | |
|---|---|---|
| committer | 2015-04-07 22:58:47 +0000 | |
| commit | 172ff24ccbc232cdf244a2bcbbb51df754929521 (patch) | |
| tree | 218f6e702da6739b013d9055420717ff4d2e41de | |
| parent | 6b4f28a7930c115f4b9e0d4fdfcd41b3bb58bf58 (diff) | |
| parent | 5977851b80549f24cd9164ec075b79c6c6291fa5 (diff) | |
am 5977851b: am 00afb817: Merge "libgui: Plumb detachBuffer through ConsumerBase"
* commit '5977851b80549f24cd9164ec075b79c6c6291fa5':
libgui: Plumb detachBuffer through ConsumerBase
| -rw-r--r-- | include/gui/ConsumerBase.h | 3 | ||||
| -rw-r--r-- | libs/gui/ConsumerBase.cpp | 15 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/gui/ConsumerBase.h b/include/gui/ConsumerBase.h index ef0feab720..d56fa89b51 100644 --- a/include/gui/ConsumerBase.h +++ b/include/gui/ConsumerBase.h @@ -76,6 +76,9 @@ public: // when a new frame becomes available. void setFrameAvailableListener(const wp<FrameAvailableListener>& listener); + // See IGraphicBufferConsumer::detachBuffer + status_t detachBuffer(int slot); + private: ConsumerBase(const ConsumerBase&); void operator=(const ConsumerBase&); diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index b874e3a320..e576018bf2 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -163,6 +163,21 @@ void ConsumerBase::setFrameAvailableListener( mFrameAvailableListener = listener; } +status_t ConsumerBase::detachBuffer(int slot) { + CB_LOGV("detachBuffer"); + Mutex::Autolock lock(mMutex); + + status_t result = mConsumer->detachBuffer(slot); + if (result != NO_ERROR) { + CB_LOGE("Failed to detach buffer: %d", result); + return result; + } + + freeBufferLocked(slot); + + return result; +} + void ConsumerBase::dump(String8& result) const { dump(result, ""); } |