libgui: Plumb detachBuffer through ConsumerBase
Exposes IGraphicBufferConsumer::detachBuffer as a ConsumerBase method. attachBuffer is not currently exposed, because all current clients will be recycling buffers through the allocator. Bug: 19628705 Change-Id: I3e519767fa43d5d880c1d5695e31b60f6ad588af
This commit is contained in:
parent
1cd030be59
commit
634f5ee6a7
@ -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&);
|
||||
|
@ -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, "");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user