Loading services/camera/libcameraservice/device3/Camera3Device.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -2344,6 +2344,21 @@ void Camera3Device::cancelStreamsConfigurationLocked() { } } bool Camera3Device::checkAbandonedStreamsLocked() { if ((mInputStream.get() != nullptr) && (mInputStream->isAbandoned())) { return true; } for (size_t i = 0; i < mOutputStreams.size(); i++) { auto stream = mOutputStreams[i]; if ((stream.get() != nullptr) && (stream->isAbandoned())) { return true; } } return false; } bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams) { ATRACE_CALL(); bool ret = false; Loading @@ -2352,6 +2367,12 @@ bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams) { nsecs_t maxExpectedDuration = getExpectedInFlightDuration(); Mutex::Autolock l(mLock); if (checkAbandonedStreamsLocked()) { ALOGW("%s: Abandoned stream detected, session parameters can't be applied correctly!", __FUNCTION__); return true; } auto rc = internalPauseAndWaitLocked(maxExpectedDuration); if (rc == NO_ERROR) { mNeedConfig = true; Loading services/camera/libcameraservice/device3/Camera3Device.h +6 −0 Original line number Diff line number Diff line Loading @@ -647,6 +647,12 @@ class Camera3Device : */ bool reconfigureCamera(const CameraMetadata& sessionParams); /** * Return true in case of any output or input abandoned streams, * otherwise return false. */ bool checkAbandonedStreamsLocked(); /** * Filter stream session parameters and configure camera HAL. */ Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -2344,6 +2344,21 @@ void Camera3Device::cancelStreamsConfigurationLocked() { } } bool Camera3Device::checkAbandonedStreamsLocked() { if ((mInputStream.get() != nullptr) && (mInputStream->isAbandoned())) { return true; } for (size_t i = 0; i < mOutputStreams.size(); i++) { auto stream = mOutputStreams[i]; if ((stream.get() != nullptr) && (stream->isAbandoned())) { return true; } } return false; } bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams) { ATRACE_CALL(); bool ret = false; Loading @@ -2352,6 +2367,12 @@ bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams) { nsecs_t maxExpectedDuration = getExpectedInFlightDuration(); Mutex::Autolock l(mLock); if (checkAbandonedStreamsLocked()) { ALOGW("%s: Abandoned stream detected, session parameters can't be applied correctly!", __FUNCTION__); return true; } auto rc = internalPauseAndWaitLocked(maxExpectedDuration); if (rc == NO_ERROR) { mNeedConfig = true; Loading
services/camera/libcameraservice/device3/Camera3Device.h +6 −0 Original line number Diff line number Diff line Loading @@ -647,6 +647,12 @@ class Camera3Device : */ bool reconfigureCamera(const CameraMetadata& sessionParams); /** * Return true in case of any output or input abandoned streams, * otherwise return false. */ bool checkAbandonedStreamsLocked(); /** * Filter stream session parameters and configure camera HAL. */ Loading