Loading services/camera/libcameraservice/device3/Camera3Device.cpp +24 −15 Original line number Diff line number Diff line Loading @@ -1104,7 +1104,9 @@ sp<Camera3Device::CaptureRequest> Camera3Device::setUpRequestLocked( status_t res; if (mStatus == STATUS_UNCONFIGURED || mNeedConfig) { res = configureStreamsLocked(); // This point should only be reached via API1 (API2 must explicitly call configureStreams) // so unilaterally select normal operating mode. res = configureStreamsLocked(CAMERA3_STREAM_CONFIGURATION_NORMAL_MODE); // Stream configuration failed. Client might try other configuraitons. if (res != OK) { CLOGE("Can't set up streams: %s (%d)", strerror(-res), res); Loading Loading @@ -1206,7 +1208,8 @@ status_t Camera3Device::createInputStream( // Continue captures if active at start if (wasActive) { ALOGV("%s: Restarting activity to reconfigure streams", __FUNCTION__); res = configureStreamsLocked(); // Reuse current operating mode for new stream config res = configureStreamsLocked(mOperatingMode); if (res != OK) { ALOGE("%s: Can't reconfigure device for new stream %d: %s (%d)", __FUNCTION__, mNextStreamId, strerror(-res), res); Loading Loading @@ -1368,7 +1371,8 @@ status_t Camera3Device::createStream(const std::vector<sp<Surface>>& consumers, // Continue captures if active at start if (wasActive) { ALOGV("%s: Restarting activity to reconfigure streams", __FUNCTION__); res = configureStreamsLocked(); // Reuse current operating mode for new stream config res = configureStreamsLocked(mOperatingMode); if (res != OK) { CLOGE("Can't reconfigure device for new stream %d: %s (%d)", mNextStreamId, strerror(-res), res); Loading Loading @@ -1519,17 +1523,7 @@ status_t Camera3Device::configureStreams(int operatingMode) { Mutex::Autolock il(mInterfaceLock); Mutex::Autolock l(mLock); bool isConstrainedHighSpeed = static_cast<int>(StreamConfigurationMode::CONSTRAINED_HIGH_SPEED_MODE) == operatingMode; if (mOperatingMode != operatingMode) { mNeedConfig = true; mIsConstrainedHighSpeedConfiguration = isConstrainedHighSpeed; mOperatingMode = operatingMode; } return configureStreamsLocked(); return configureStreamsLocked(operatingMode); } status_t Camera3Device::getInputBufferProducer( Loading Loading @@ -2177,7 +2171,7 @@ void Camera3Device::cancelStreamsConfigurationLocked() { mNeedConfig = true; } status_t Camera3Device::configureStreamsLocked() { status_t Camera3Device::configureStreamsLocked(int operatingMode) { ATRACE_CALL(); status_t res; Loading @@ -2186,6 +2180,21 @@ status_t Camera3Device::configureStreamsLocked() { return INVALID_OPERATION; } if (operatingMode < 0) { CLOGE("Invalid operating mode: %d", operatingMode); return BAD_VALUE; } bool isConstrainedHighSpeed = static_cast<int>(StreamConfigurationMode::CONSTRAINED_HIGH_SPEED_MODE) == operatingMode; if (mOperatingMode != operatingMode) { mNeedConfig = true; mIsConstrainedHighSpeedConfiguration = isConstrainedHighSpeed; mOperatingMode = operatingMode; } if (!mNeedConfig) { ALOGV("%s: Skipping config, no stream changes", __FUNCTION__); return OK; Loading services/camera/libcameraservice/device3/Camera3Device.h +1 −1 Original line number Diff line number Diff line Loading @@ -515,7 +515,7 @@ class Camera3Device : * Take the currently-defined set of streams and configure the HAL to use * them. This is a long-running operation (may be several hundered ms). */ status_t configureStreamsLocked(); status_t configureStreamsLocked(int operatingMode); /** * Cancel stream configuration that did not finish successfully. Loading Loading
services/camera/libcameraservice/device3/Camera3Device.cpp +24 −15 Original line number Diff line number Diff line Loading @@ -1104,7 +1104,9 @@ sp<Camera3Device::CaptureRequest> Camera3Device::setUpRequestLocked( status_t res; if (mStatus == STATUS_UNCONFIGURED || mNeedConfig) { res = configureStreamsLocked(); // This point should only be reached via API1 (API2 must explicitly call configureStreams) // so unilaterally select normal operating mode. res = configureStreamsLocked(CAMERA3_STREAM_CONFIGURATION_NORMAL_MODE); // Stream configuration failed. Client might try other configuraitons. if (res != OK) { CLOGE("Can't set up streams: %s (%d)", strerror(-res), res); Loading Loading @@ -1206,7 +1208,8 @@ status_t Camera3Device::createInputStream( // Continue captures if active at start if (wasActive) { ALOGV("%s: Restarting activity to reconfigure streams", __FUNCTION__); res = configureStreamsLocked(); // Reuse current operating mode for new stream config res = configureStreamsLocked(mOperatingMode); if (res != OK) { ALOGE("%s: Can't reconfigure device for new stream %d: %s (%d)", __FUNCTION__, mNextStreamId, strerror(-res), res); Loading Loading @@ -1368,7 +1371,8 @@ status_t Camera3Device::createStream(const std::vector<sp<Surface>>& consumers, // Continue captures if active at start if (wasActive) { ALOGV("%s: Restarting activity to reconfigure streams", __FUNCTION__); res = configureStreamsLocked(); // Reuse current operating mode for new stream config res = configureStreamsLocked(mOperatingMode); if (res != OK) { CLOGE("Can't reconfigure device for new stream %d: %s (%d)", mNextStreamId, strerror(-res), res); Loading Loading @@ -1519,17 +1523,7 @@ status_t Camera3Device::configureStreams(int operatingMode) { Mutex::Autolock il(mInterfaceLock); Mutex::Autolock l(mLock); bool isConstrainedHighSpeed = static_cast<int>(StreamConfigurationMode::CONSTRAINED_HIGH_SPEED_MODE) == operatingMode; if (mOperatingMode != operatingMode) { mNeedConfig = true; mIsConstrainedHighSpeedConfiguration = isConstrainedHighSpeed; mOperatingMode = operatingMode; } return configureStreamsLocked(); return configureStreamsLocked(operatingMode); } status_t Camera3Device::getInputBufferProducer( Loading Loading @@ -2177,7 +2171,7 @@ void Camera3Device::cancelStreamsConfigurationLocked() { mNeedConfig = true; } status_t Camera3Device::configureStreamsLocked() { status_t Camera3Device::configureStreamsLocked(int operatingMode) { ATRACE_CALL(); status_t res; Loading @@ -2186,6 +2180,21 @@ status_t Camera3Device::configureStreamsLocked() { return INVALID_OPERATION; } if (operatingMode < 0) { CLOGE("Invalid operating mode: %d", operatingMode); return BAD_VALUE; } bool isConstrainedHighSpeed = static_cast<int>(StreamConfigurationMode::CONSTRAINED_HIGH_SPEED_MODE) == operatingMode; if (mOperatingMode != operatingMode) { mNeedConfig = true; mIsConstrainedHighSpeedConfiguration = isConstrainedHighSpeed; mOperatingMode = operatingMode; } if (!mNeedConfig) { ALOGV("%s: Skipping config, no stream changes", __FUNCTION__); return OK; Loading
services/camera/libcameraservice/device3/Camera3Device.h +1 −1 Original line number Diff line number Diff line Loading @@ -515,7 +515,7 @@ class Camera3Device : * Take the currently-defined set of streams and configure the HAL to use * them. This is a long-running operation (may be several hundered ms). */ status_t configureStreamsLocked(); status_t configureStreamsLocked(int operatingMode); /** * Cancel stream configuration that did not finish successfully. Loading