diff options
author | Emilian Peev <epeev@google.com> | 2018-02-05 21:32:00 +0000 |
---|---|---|
committer | Emilian Peev <epeev@google.com> | 2018-02-09 20:19:36 +0000 |
commit | e0c52bb1f049a7027c93024a284d64c97f80509c (patch) | |
tree | 3101ae2f5097533fa368d8e369171045d87a37db /camera/device/3.4/default/CameraDeviceSession.cpp | |
parent | e3d0fd346bbddd9f0423fb52fce70bd11e3535f9 (diff) |
Camera: Add support for empty physical settings optimization
Empty individual physical settings should be allowed after
one initial successful request.
Bug: 72524845
Test: run vts --skip-all-system-status-check --skip-preconditions
--primary-abi-only --module VtsHalCameraProviderV2_4Target -l INFO
Change-Id: I18d22a56f5f0e6e1d81a6e8c844697c02bc343a1
Diffstat (limited to 'camera/device/3.4/default/CameraDeviceSession.cpp')
-rw-r--r-- | camera/device/3.4/default/CameraDeviceSession.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/camera/device/3.4/default/CameraDeviceSession.cpp b/camera/device/3.4/default/CameraDeviceSession.cpp index f6c6b2b0fe..423748a197 100644 --- a/camera/device/3.4/default/CameraDeviceSession.cpp +++ b/camera/device/3.4/default/CameraDeviceSession.cpp @@ -378,7 +378,7 @@ Status CameraDeviceSession::processOneCaptureRequest_3_4(const V3_4::CaptureRequ for (size_t i = 0; i < settingsCount; i++) { uint64_t settingsSize = request.physicalCameraSettings[i].fmqSettingsSize; - const camera_metadata_t *settings; + const camera_metadata_t *settings = nullptr; if (settingsSize > 0) { physicalFmq.push_back(V3_2::CameraMetadata(settingsSize)); bool read = mRequestMetadataQueue->read(physicalFmq[i].data(), settingsSize); @@ -400,6 +400,13 @@ Status CameraDeviceSession::processOneCaptureRequest_3_4(const V3_4::CaptureRequ ALOGE("%s: physical camera settings metadata is corrupt!", __FUNCTION__); return Status::ILLEGAL_ARGUMENT; } + + if (mFirstRequest && settings == nullptr) { + ALOGE("%s: Individual request settings must not be null for first request!", + __FUNCTION__); + return Status::ILLEGAL_ARGUMENT; + } + physicalCameraIds.push_back(request.physicalCameraSettings[i].physicalCameraId.c_str()); } } |