diff options
| author | 2019-05-28 15:22:41 -0700 | |
|---|---|---|
| committer | 2019-05-28 15:22:41 -0700 | |
| commit | 2eeb9c63869b295e444604d7c5470ce6be3744a0 (patch) | |
| tree | 4772925ea9cffefac1a963899c9d6881bc41c40d /libs/gui/BufferQueueProducer.cpp | |
| parent | 5ecf5b0340337eda26b399c44fce4325b33b5681 (diff) | |
| parent | b35167c9eb56823dca5a7b707fe903f35c1bb37e (diff) | |
Merge "BufferQueueProducer: fix buffer adjustment during setDequeueTimeout" into qt-dev
am: b35167c9eb
Change-Id: I1232ea3cd0439b459ba91e27965fbaa7963a0c20
Diffstat (limited to 'libs/gui/BufferQueueProducer.cpp')
| -rw-r--r-- | libs/gui/BufferQueueProducer.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp index 96d75689eb..c20c2f3dca 100644 --- a/libs/gui/BufferQueueProducer.cpp +++ b/libs/gui/BufferQueueProducer.cpp @@ -1497,7 +1497,9 @@ status_t BufferQueueProducer::setDequeueTimeout(nsecs_t timeout) { BQ_LOGV("setDequeueTimeout: %" PRId64, timeout); std::lock_guard<std::mutex> lock(mCore->mMutex); - int delta = mCore->getMaxBufferCountLocked(mCore->mAsyncMode, false, + bool dequeueBufferCannotBlock = + timeout >= 0 ? false : mCore->mDequeueBufferCannotBlock; + int delta = mCore->getMaxBufferCountLocked(mCore->mAsyncMode, dequeueBufferCannotBlock, mCore->mMaxBufferCount) - mCore->getMaxBufferCountLocked(); if (!mCore->adjustAvailableSlotsLocked(delta)) { BQ_LOGE("setDequeueTimeout: BufferQueue failed to adjust the number of " @@ -1506,11 +1508,9 @@ status_t BufferQueueProducer::setDequeueTimeout(nsecs_t timeout) { } mDequeueTimeout = timeout; - if (timeout >= 0) { - mCore->mDequeueBufferCannotBlock = false; - if (timeout != 0) { - mCore->mQueueBufferCanDrop = false; - } + mCore->mDequeueBufferCannotBlock = dequeueBufferCannotBlock; + if (timeout > 0) { + mCore->mQueueBufferCanDrop = false; } VALIDATE_CONSISTENCY(); |