diff options
author | 2025-02-12 12:31:25 -0800 | |
---|---|---|
committer | 2025-02-12 12:31:25 -0800 | |
commit | 0a1926e26a35784d79097cec4d8c21bd928bb954 (patch) | |
tree | 113e29015847544d0688be9d5956d60d2bad0306 /libs/gui/ConsumerBase.cpp | |
parent | e07d8df19ae4ded31d1ade217d757da2b865e5da (diff) | |
parent | 0c9ce8436b65a98fec33b3f92bc1acf4481decec (diff) |
Merge "Add addReleaseFence API to ConsumerBase." into main
Diffstat (limited to 'libs/gui/ConsumerBase.cpp')
-rw-r--r-- | libs/gui/ConsumerBase.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index 3ad0e529a5..67de742161 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -385,6 +385,26 @@ status_t ConsumerBase::detachBuffer(const sp<GraphicBuffer>& buffer) { } #endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_PLATFORM_API_IMPROVEMENTS) +status_t ConsumerBase::addReleaseFence(const sp<GraphicBuffer> buffer, const sp<Fence>& fence) { + CB_LOGV("addReleaseFence"); + Mutex::Autolock lock(mMutex); + + if (mAbandoned) { + CB_LOGE("addReleaseFence: ConsumerBase is abandoned!"); + return NO_INIT; + } + if (buffer == nullptr) { + return BAD_VALUE; + } + + int slotIndex = getSlotForBufferLocked(buffer); + if (slotIndex == BufferQueue::INVALID_BUFFER_SLOT) { + return BAD_VALUE; + } + + return addReleaseFenceLocked(slotIndex, buffer, fence); +} + status_t ConsumerBase::setDefaultBufferSize(uint32_t width, uint32_t height) { Mutex::Autolock _l(mMutex); if (mAbandoned) { |