summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueProducer.cpp
diff options
context:
space:
mode:
author Jammy Yu <jammy.yu@mstarsemi.com> 2017-02-22 16:41:38 -0800
committer Shuzhen Wang <shuzhenwang@google.com> 2017-05-16 14:43:14 -0700
commitc5cd20733795a0fe1f1ba228ec099c4c7e6dbaa7 (patch)
tree2d4d46edb478cc906ede23ba31faa2d9799a4b76 /libs/gui/BufferQueueProducer.cpp
parent2c201405acc3101fec6b501c56be85bc1d876f0c (diff)
Fix error BufferQueue attaching flow.
Fix error BufferQueue attaching flow. Because BufferQueue attaching buffer flow doesn't set mNeedsReallocation to false, it will case Surface client to request buffer for attached buffer to cause unsync buffer states with ACodec. So, for attaching buffer by Producer, we need to set mNeedsReallocation to false in BufferQueue. And Surface client will not request buffer again for attached buffer to cause some missing frames. Bug: 38238747 Issue: 34897483 Test: GTS Change-Id: I25f9fff4b5d1f7052ab3be612cf34879fd17c27c
Diffstat (limited to 'libs/gui/BufferQueueProducer.cpp')
-rw-r--r--libs/gui/BufferQueueProducer.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp
index 8159aefc08..6a5593cc1c 100644
--- a/libs/gui/BufferQueueProducer.cpp
+++ b/libs/gui/BufferQueueProducer.cpp
@@ -732,6 +732,7 @@ status_t BufferQueueProducer::attachBuffer(int* outSlot,
mSlots[*outSlot].mFence = Fence::NO_FENCE;
mSlots[*outSlot].mRequestBufferCalled = true;
mSlots[*outSlot].mAcquireCalled = false;
+ mSlots[*outSlot].mNeedsReallocation = false;
mCore->mActiveBuffers.insert(found);
VALIDATE_CONSISTENCY();