Loading services/camera/libcameraservice/device3/Camera3Device.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -2857,6 +2857,7 @@ Camera3Device::RequestThread::RequestThread(wp<Camera3Device> parent, mInterface(interface), mListener(nullptr), mId(getId(parent)), mRequestClearing(false), mFirstRepeating(false), mReconfigured(false), mDoPause(false), Loading Loading @@ -3090,6 +3091,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 @@ -4218,7 +4220,9 @@ sp<Camera3Device::CaptureRequest> break; } if (!mRequestClearing) { res = mRequestSignal.waitRelative(mRequestLock, kRequestTimeout); } if ((mRequestQueue.empty() && mRepeatingRequests.empty()) || exitPending()) { Loading @@ -4240,6 +4244,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 @@ -982,6 +982,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 @@ -2857,6 +2857,7 @@ Camera3Device::RequestThread::RequestThread(wp<Camera3Device> parent, mInterface(interface), mListener(nullptr), mId(getId(parent)), mRequestClearing(false), mFirstRepeating(false), mReconfigured(false), mDoPause(false), Loading Loading @@ -3090,6 +3091,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 @@ -4218,7 +4220,9 @@ sp<Camera3Device::CaptureRequest> break; } if (!mRequestClearing) { res = mRequestSignal.waitRelative(mRequestLock, kRequestTimeout); } if ((mRequestQueue.empty() && mRepeatingRequests.empty()) || exitPending()) { Loading @@ -4240,6 +4244,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 @@ -982,6 +982,8 @@ class Camera3Device : Mutex mRequestLock; Condition mRequestSignal; bool mRequestClearing; Condition mRequestSubmittedSignal; RequestList mRequestQueue; RequestList mRepeatingRequests; Loading