summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Stoza <stoza@google.com>2015-04-07 22:38:00 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-04-07 22:38:00 +0000
commit00afb8177fdbf144c75c00e9eacc915589807d35 (patch)
tree0e7bac84fd1a5c0986f794e62957aa33e8700010
parent1cd030be59c108cde25234f0d2da83a68a7cdd26 (diff)
parent634f5ee6a713b3cf4086a2af8e9b56e76cba245f (diff)
downloadnative-android-wear-5.1.1_r1.tar.gz
Merge "libgui: Plumb detachBuffer through ConsumerBase"android-wear-5.1.1_r1android-wear-5.1.0_r1
-rw-r--r--include/gui/ConsumerBase.h3
-rw-r--r--libs/gui/ConsumerBase.cpp15
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, "");
}