Loading services/camera/libcameraservice/device3/Camera3Device.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -1424,6 +1424,8 @@ status_t Camera3Device::RequestThread::queueRequest( Mutex::Autolock l(mRequestLock); mRequestQueue.push_back(request); unpauseForNewRequests(); return OK; } Loading Loading @@ -1489,6 +1491,9 @@ status_t Camera3Device::RequestThread::setRepeatingRequests( mRepeatingRequests.clear(); mRepeatingRequests.insert(mRepeatingRequests.begin(), requests.begin(), requests.end()); unpauseForNewRequests(); return OK; } Loading Loading @@ -1791,7 +1796,9 @@ sp<Camera3Device::CaptureRequest> mRequestQueue.erase(firstRequest); } // Not paused // In case we've been unpaused by setPaused clearing mDoPause, need to // update internal pause state (capture/setRepeatingRequest unpause // directly). Mutex::Autolock pl(mPauseLock); mPaused = false; Loading Loading @@ -1824,6 +1831,16 @@ bool Camera3Device::RequestThread::waitIfPaused() { return false; } void Camera3Device::RequestThread::unpauseForNewRequests() { // With work to do, mark thread as unpaused. // If paused by request (setPaused), don't resume, to avoid // extra signaling/waiting overhead to waitUntilPaused Mutex::Autolock p(mPauseLock); if (!mDoPause) { mPaused = false; } } void Camera3Device::RequestThread::setErrorState(const char *fmt, ...) { sp<Camera3Device> parent = mParent.promote(); if (parent != NULL) { Loading services/camera/libcameraservice/device3/Camera3Device.h +1 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,7 @@ class Camera3Device : // Pause handling bool waitIfPaused(); void unpauseForNewRequests(); // Relay error to parent device object setErrorState void setErrorState(const char *fmt, ...); Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -1424,6 +1424,8 @@ status_t Camera3Device::RequestThread::queueRequest( Mutex::Autolock l(mRequestLock); mRequestQueue.push_back(request); unpauseForNewRequests(); return OK; } Loading Loading @@ -1489,6 +1491,9 @@ status_t Camera3Device::RequestThread::setRepeatingRequests( mRepeatingRequests.clear(); mRepeatingRequests.insert(mRepeatingRequests.begin(), requests.begin(), requests.end()); unpauseForNewRequests(); return OK; } Loading Loading @@ -1791,7 +1796,9 @@ sp<Camera3Device::CaptureRequest> mRequestQueue.erase(firstRequest); } // Not paused // In case we've been unpaused by setPaused clearing mDoPause, need to // update internal pause state (capture/setRepeatingRequest unpause // directly). Mutex::Autolock pl(mPauseLock); mPaused = false; Loading Loading @@ -1824,6 +1831,16 @@ bool Camera3Device::RequestThread::waitIfPaused() { return false; } void Camera3Device::RequestThread::unpauseForNewRequests() { // With work to do, mark thread as unpaused. // If paused by request (setPaused), don't resume, to avoid // extra signaling/waiting overhead to waitUntilPaused Mutex::Autolock p(mPauseLock); if (!mDoPause) { mPaused = false; } } void Camera3Device::RequestThread::setErrorState(const char *fmt, ...) { sp<Camera3Device> parent = mParent.promote(); if (parent != NULL) { Loading
services/camera/libcameraservice/device3/Camera3Device.h +1 −0 Original line number Diff line number Diff line Loading @@ -314,6 +314,7 @@ class Camera3Device : // Pause handling bool waitIfPaused(); void unpauseForNewRequests(); // Relay error to parent device object setErrorState void setErrorState(const char *fmt, ...); Loading