summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueProducer.cpp
diff options
context:
space:
mode:
author Sungtak Lee <taklee@google.com> 2019-05-28 15:22:41 -0700
committer android-build-merger <android-build-merger@google.com> 2019-05-28 15:22:41 -0700
commit2eeb9c63869b295e444604d7c5470ce6be3744a0 (patch)
tree4772925ea9cffefac1a963899c9d6881bc41c40d /libs/gui/BufferQueueProducer.cpp
parent5ecf5b0340337eda26b399c44fce4325b33b5681 (diff)
parentb35167c9eb56823dca5a7b707fe903f35c1bb37e (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.cpp12
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();