OSDN Git Service

make sure to reset the framenumber when a buffer is marked FREE
authorMathias Agopian <mathias@google.com>
Fri, 19 Jul 2013 05:25:55 +0000 (22:25 -0700)
committerMathias Agopian <mathias@google.com>
Sat, 20 Jul 2013 00:38:01 +0000 (17:38 -0700)
Change-Id: Ic45929f35553de209801f74e8006fb1bf0b25b45

libs/gui/BufferQueue.cpp

index cf81431..73bd488 100644 (file)
@@ -555,6 +555,9 @@ status_t BufferQueue::queueBuffer(int buf,
                 // buffer slot currently queued is marked free if still tracked
                 if (stillTracking(front)) {
                     mSlots[front->mBuf].mBufferState = BufferSlot::FREE;
+                    // reset the frame number of the freed buffer so that it is the first in
+                    // line to be dequeued again.
+                    mSlots[front->mBuf].mFrameNumber = 0;
                 }
                 // and we record the new buffer in the queued list
                 *front = item;