Camera: VNDK: Fix deferred endConfigure due to missing sessionParam

In case the app doesn't provide sessionParameters, the VNDK should still
allow endConfigure() to be called to the camera service.

Test: Run test app and observe camera streams properly
Bug: 120505813
Change-Id: Ifa72dca61b8e25cd433d2c02c70b1c8e5e097228
gugelfrei
Shuzhen Wang 6 years ago
parent f4a342abd2
commit 639ed1204c

@ -754,8 +754,8 @@ CameraDevice::configureStreamsLocked(const ACaptureSessionOutputContainer* outpu
const camera_metadata_t *params_metadata = params.getAndLock();
utils::convertToHidl(params_metadata, &hidlParams);
params.unlock(params_metadata);
remoteRet = mRemote->endConfigure(StreamConfigurationMode::NORMAL_MODE, hidlParams);
}
remoteRet = mRemote->endConfigure(StreamConfigurationMode::NORMAL_MODE, hidlParams);
if (!remoteRet.isOk()) {
ALOGE("Transaction error: endConfigure failed %s", remoteRet.description().c_str());
}

@ -101,12 +101,14 @@ hardware::camera2::params::OutputConfiguration convertFromHidl(
bool convertFromHidl(const HCameraMetadata &src, CameraMetadata *dst) {
const camera_metadata_t *buffer = reinterpret_cast<const camera_metadata_t*>(src.data());
size_t expectedSize = src.size();
int res = validate_camera_metadata_structure(buffer, &expectedSize);
if (res == OK || res == CAMERA_METADATA_VALIDATION_SHIFTED) {
*dst = buffer;
} else {
ALOGE("%s: Malformed camera metadata received from HAL", __FUNCTION__);
return false;
if (buffer != nullptr) {
int res = validate_camera_metadata_structure(buffer, &expectedSize);
if (res == OK || res == CAMERA_METADATA_VALIDATION_SHIFTED) {
*dst = buffer;
} else {
ALOGE("%s: Malformed camera metadata received from HAL", __FUNCTION__);
return false;
}
}
return true;
}

Loading…
Cancel
Save