From 3177f58e30a1757d70a414085aff2a4455fc0767 Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Wed, 12 May 2021 12:35:16 -0700 Subject: [PATCH] Camera: Correct partial result entry count query Use the partial tag count instead of the size of the metadata buffer. Additionally initialize 'collectedResult' to avoid false positives when checking partial result entries against invalid/uninitialized accumulated results. Bug: 187156343 Test: Partner verified Change-Id: Iff55f53952c7b06bc2a0b9786247d8ec04227705 --- .../functional/VtsHalCameraProviderV2_4TargetTest.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp index deb420d1e2..0ec9fe34b0 100644 --- a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp +++ b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp @@ -997,7 +997,8 @@ protected: frameNumber(0), partialResultCount(0), errorStreamId(-1), - hasInputBuffer(false) {} + hasInputBuffer(false), + collectedResult(1, 10) {} InFlightRequest(ssize_t numBuffers, bool hasInput, bool partialResults, uint32_t partialCount, @@ -1013,7 +1014,8 @@ protected: frameNumber(0), partialResultCount(0), errorStreamId(-1), - hasInputBuffer(hasInput) {} + hasInputBuffer(hasInput), + collectedResult(1, 10) {} InFlightRequest(ssize_t numBuffers, bool hasInput, bool partialResults, uint32_t partialCount, @@ -1031,6 +1033,7 @@ protected: partialResultCount(0), errorStreamId(-1), hasInputBuffer(hasInput), + collectedResult(1, 10), expectedPhysicalResults(extraPhysicalResult) {} }; @@ -1313,7 +1316,7 @@ bool CameraHidlTest::DeviceCb::processCaptureResultLocked(const CaptureResult& r reinterpret_cast(resultMetadata.data()); const camera_metadata_t* collectedMetadata = request->collectedResult.getAndLock(); camera_metadata_ro_entry_t searchEntry, foundEntry; - for (size_t i = 0; i < get_camera_metadata_size(partialMetadata); i++) { + for (size_t i = 0; i < get_camera_metadata_entry_count(partialMetadata); i++) { if (0 != get_camera_metadata_ro_entry(partialMetadata, i, &searchEntry)) { ADD_FAILURE(); request->collectedResult.unlock(collectedMetadata);