From 69958b80437f143810f453b0bcac760306629078 Mon Sep 17 00:00:00 2001 From: Jammy Yu Date: Wed, 22 Feb 2017 16:41:38 -0800 Subject: 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. Issue: 34897483 Test: GTS Change-Id: I25f9fff4b5d1f7052ab3be612cf34879fd17c27c --- libs/gui/BufferQueueProducer.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'libs/gui/BufferQueueProducer.cpp') diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp index f8f38725b5..8d816c1dc8 100644 --- a/libs/gui/BufferQueueProducer.cpp +++ b/libs/gui/BufferQueueProducer.cpp @@ -721,6 +721,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(); -- cgit v1.2.3-59-g8ed1b