commit | 46c994ea7007ee6a982cf12c1a9fc5a8f03e25a4 | [log] [tgz] |
---|---|---|
author | Yin-Chia Yeh <yinchiayeh@google.com> | Mon Aug 10 17:38:25 2020 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Mon Aug 10 17:38:25 2020 +0000 |
tree | 4cb2317c16196160991bd84ffddf9a2e5b280067 | |
parent | e80e32130675791dc77ef673fb1ae7f2782496db [diff] | |
parent | fe70f2d1d3a94bda55d36609f06a410b1b295092 [diff] |
RESTRICT AUTOMERGE: Camera: fix wrong signalStreamFlush call am: fe70f2d1d3 Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1373408 Change-Id: I5a69eeadbdf0178c50509f3c3d76b45434a44fa5
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp index ed5acd8..833f62d 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.cpp +++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -2226,10 +2226,12 @@ mStatusWaiters++; + bool signalPipelineDrain = false; if (!active && mUseHalBufManager) { auto streamIds = mOutputStreams.getStreamIds(); if (mStatus == STATUS_ACTIVE) { mRequestThread->signalPipelineDrain(streamIds); + signalPipelineDrain = true; } mRequestBufferSM.onWaitUntilIdle(); } @@ -2259,6 +2261,10 @@ } } while (!stateSeen); + if (signalPipelineDrain) { + mRequestThread->resetPipelineDrain(); + } + mStatusWaiters--; return res; @@ -5884,6 +5890,12 @@ mStreamIdsToBeDrained = streamIds; } +void Camera3Device::RequestThread::resetPipelineDrain() { + Mutex::Autolock pl(mPauseLock); + mNotifyPipelineDrain = false; + mStreamIdsToBeDrained.clear(); +} + nsecs_t Camera3Device::getExpectedInFlightDuration() { ATRACE_CALL(); Mutex::Autolock al(mInFlightLock);
diff --git a/services/camera/libcameraservice/device3/Camera3Device.h b/services/camera/libcameraservice/device3/Camera3Device.h index 9b0648d..6b8601f 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.h +++ b/services/camera/libcameraservice/device3/Camera3Device.h
@@ -838,6 +838,7 @@ } void signalPipelineDrain(const std::vector<int>& streamIds); + void resetPipelineDrain(); protected: