Loading services/camera/libcameraservice/device3/Camera3Device.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -2872,6 +2872,7 @@ Camera3Device::RequestThread::RequestThread(wp<Camera3Device> parent, mInterface(interface), mListener(nullptr), mId(getId(parent)), mRequestClearing(false), mFirstRepeating(false), mReconfigured(false), mDoPause(false), Loading Loading @@ -3105,6 +3106,7 @@ status_t Camera3Device::RequestThread::clear( *lastFrameNumber = mRepeatingLastFrameNumber; } mRepeatingLastFrameNumber = hardware::camera2::ICameraDeviceUser::NO_IN_FLIGHT_REPEATING_FRAMES; mRequestClearing = true; mRequestSignal.signal(); return OK; } Loading Loading @@ -4233,7 +4235,9 @@ sp<Camera3Device::CaptureRequest> break; } if (!mRequestClearing) { res = mRequestSignal.waitRelative(mRequestLock, kRequestTimeout); } if ((mRequestQueue.empty() && mRepeatingRequests.empty()) || exitPending()) { Loading @@ -4255,6 +4259,7 @@ sp<Camera3Device::CaptureRequest> if (parent != nullptr) { parent->mRequestBufferSM.onRequestThreadPaused(); } mRequestClearing = false; } // Stop waiting for now and let thread management happen return NULL; Loading services/camera/libcameraservice/device3/Camera3Device.h +2 −0 Original line number Diff line number Diff line Loading @@ -986,6 +986,8 @@ class Camera3Device : Mutex mRequestLock; Condition mRequestSignal; bool mRequestClearing; Condition mRequestSubmittedSignal; RequestList mRequestQueue; RequestList mRepeatingRequests; Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -2872,6 +2872,7 @@ Camera3Device::RequestThread::RequestThread(wp<Camera3Device> parent, mInterface(interface), mListener(nullptr), mId(getId(parent)), mRequestClearing(false), mFirstRepeating(false), mReconfigured(false), mDoPause(false), Loading Loading @@ -3105,6 +3106,7 @@ status_t Camera3Device::RequestThread::clear( *lastFrameNumber = mRepeatingLastFrameNumber; } mRepeatingLastFrameNumber = hardware::camera2::ICameraDeviceUser::NO_IN_FLIGHT_REPEATING_FRAMES; mRequestClearing = true; mRequestSignal.signal(); return OK; } Loading Loading @@ -4233,7 +4235,9 @@ sp<Camera3Device::CaptureRequest> break; } if (!mRequestClearing) { res = mRequestSignal.waitRelative(mRequestLock, kRequestTimeout); } if ((mRequestQueue.empty() && mRepeatingRequests.empty()) || exitPending()) { Loading @@ -4255,6 +4259,7 @@ sp<Camera3Device::CaptureRequest> if (parent != nullptr) { parent->mRequestBufferSM.onRequestThreadPaused(); } mRequestClearing = false; } // Stop waiting for now and let thread management happen return NULL; Loading
services/camera/libcameraservice/device3/Camera3Device.h +2 −0 Original line number Diff line number Diff line Loading @@ -986,6 +986,8 @@ class Camera3Device : Mutex mRequestLock; Condition mRequestSignal; bool mRequestClearing; Condition mRequestSubmittedSignal; RequestList mRequestQueue; RequestList mRepeatingRequests; Loading