Loading services/camera/libcameraservice/device3/Camera3Device.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -2865,6 +2865,12 @@ bool Camera3Device::RequestThread::threadLoop() { nextRequest->mSettings.unlock(request.settings); } // Unset as current request { Mutex::Autolock l(mRequestLock); mNextRequest.clear(); } // Remove any previously queued triggers (after unlock) res = removeTriggers(mPrevRequest); if (res != OK) { Loading @@ -2890,6 +2896,13 @@ bool Camera3Device::RequestThread::isStreamPending( sp<Camera3StreamInterface>& stream) { Mutex::Autolock l(mRequestLock); if (mNextRequest != nullptr) { for (const auto& s : mNextRequest->mOutputStreams) { if (stream == s) return true; } if (stream == mNextRequest->mInputStream) return true; } for (const auto& request : mRequestQueue) { for (const auto& s : request->mOutputStreams) { if (stream == s) return true; Loading Loading @@ -2924,6 +2937,9 @@ void Camera3Device::RequestThread::cleanUpFailedRequest( nextRequest->mOutputStreams.editItemAt(i)->returnBuffer( outputBuffers[i], 0); } Mutex::Autolock l(mRequestLock); mNextRequest.clear(); } sp<Camera3Device::CaptureRequest> Loading Loading @@ -3007,6 +3023,8 @@ sp<Camera3Device::CaptureRequest> nextRequest->mResultExtras.afTriggerId = mCurrentAfTriggerId; nextRequest->mResultExtras.precaptureTriggerId = mCurrentPreCaptureTriggerId; } mNextRequest = nextRequest; return nextRequest; } Loading services/camera/libcameraservice/device3/Camera3Device.h +4 −0 Original line number Diff line number Diff line Loading @@ -501,6 +501,10 @@ class Camera3Device : Condition mRequestSignal; RequestList mRequestQueue; RequestList mRepeatingRequests; // The next request being prepped for submission to the HAL, no longer // on the request queue. Read-only even with mRequestLock held, outside // of threadLoop sp<const CaptureRequest> mNextRequest; bool mReconfigured; Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +18 −0 Original line number Diff line number Diff line Loading @@ -2865,6 +2865,12 @@ bool Camera3Device::RequestThread::threadLoop() { nextRequest->mSettings.unlock(request.settings); } // Unset as current request { Mutex::Autolock l(mRequestLock); mNextRequest.clear(); } // Remove any previously queued triggers (after unlock) res = removeTriggers(mPrevRequest); if (res != OK) { Loading @@ -2890,6 +2896,13 @@ bool Camera3Device::RequestThread::isStreamPending( sp<Camera3StreamInterface>& stream) { Mutex::Autolock l(mRequestLock); if (mNextRequest != nullptr) { for (const auto& s : mNextRequest->mOutputStreams) { if (stream == s) return true; } if (stream == mNextRequest->mInputStream) return true; } for (const auto& request : mRequestQueue) { for (const auto& s : request->mOutputStreams) { if (stream == s) return true; Loading Loading @@ -2924,6 +2937,9 @@ void Camera3Device::RequestThread::cleanUpFailedRequest( nextRequest->mOutputStreams.editItemAt(i)->returnBuffer( outputBuffers[i], 0); } Mutex::Autolock l(mRequestLock); mNextRequest.clear(); } sp<Camera3Device::CaptureRequest> Loading Loading @@ -3007,6 +3023,8 @@ sp<Camera3Device::CaptureRequest> nextRequest->mResultExtras.afTriggerId = mCurrentAfTriggerId; nextRequest->mResultExtras.precaptureTriggerId = mCurrentPreCaptureTriggerId; } mNextRequest = nextRequest; return nextRequest; } Loading
services/camera/libcameraservice/device3/Camera3Device.h +4 −0 Original line number Diff line number Diff line Loading @@ -501,6 +501,10 @@ class Camera3Device : Condition mRequestSignal; RequestList mRequestQueue; RequestList mRepeatingRequests; // The next request being prepped for submission to the HAL, no longer // on the request queue. Read-only even with mRequestLock held, outside // of threadLoop sp<const CaptureRequest> mNextRequest; bool mReconfigured; Loading