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
diff --git a/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp b/camera/provider/2.4/vts/functional/VtsHalCameraProviderV2_4TargetTest.cpp
index deb420d..0ec9fe3 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 @@
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 @@
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 @@
partialResultCount(0),
errorStreamId(-1),
hasInputBuffer(hasInput),
+ collectedResult(1, 10),
expectedPhysicalResults(extraPhysicalResult) {}
};
@@ -1313,7 +1316,7 @@
reinterpret_cast<const camera_metadata_t*>(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);