diff --git a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp index 4d4bb26800..50fb052aa2 100644 --- a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp +++ b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp @@ -1847,7 +1847,6 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { // Generate and verify 10-bit dynamic range request TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector cameraDeviceNames = getCameraDeviceNames(mProvider); - int64_t bufferId = 1; CameraMetadata settings; for (const auto& name : cameraDeviceNames) { @@ -1928,12 +1927,12 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { // Stream as long as needed to fill the Hal inflight queue std::vector requests(halStreams[0].maxBuffers); - for (int32_t frameNumber = 0; frameNumber < requests.size(); frameNumber++) { + for (int32_t requestId = 0; requestId < requests.size(); requestId++) { std::shared_ptr inflightReq = std::make_shared( static_cast(halStreams.size()), false, supportsPartialResults, partialResultCount, std::unordered_set(), resultQueue); - CaptureRequest& request = requests[frameNumber]; + CaptureRequest& request = requests[requestId]; std::vector& outputBuffers = request.outputBuffers; outputBuffers.resize(halStreams.size()); @@ -1942,6 +1941,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector graphicBuffers; graphicBuffers.reserve(halStreams.size()); + auto bufferId = requestId + 1; // Buffer id value 0 is not valid for (const auto& halStream : halStreams) { buffer_handle_t buffer_handle; if (useHalBufManager) { @@ -1960,14 +1960,13 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { outputBuffers[k] = {halStream.id, bufferId, android::makeToAidl(buffer_handle), BufferStatus::OK, NativeHandle(), NativeHandle()}; - bufferId++; } k++; } request.inputBuffer = { -1, 0, NativeHandle(), BufferStatus::ERROR, NativeHandle(), NativeHandle()}; - request.frameNumber = frameNumber; + request.frameNumber = bufferId; request.fmqSettingsSize = 0; request.settings = settings; request.inputWidth = 0; @@ -1975,7 +1974,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { { std::unique_lock l(mLock); - mInflightMap[frameNumber] = inflightReq; + mInflightMap[bufferId] = inflightReq; } } @@ -1991,7 +1990,10 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector {halStreams[0].id}); ASSERT_TRUE(returnStatus.isOk()); - for (int32_t frameNumber = 0; frameNumber < requests.size(); frameNumber++) { + // We are keeping frame numbers and buffer ids consistent. Buffer id value of 0 + // is used to indicate a buffer that is not present/available so buffer ids as well + // as frame numbers begin with 1. + for (int32_t frameNumber = 1; frameNumber <= requests.size(); frameNumber++) { const auto& inflightReq = mInflightMap[frameNumber]; std::unique_lock l(mLock); while (!inflightReq->errorCodeValid && diff --git a/camera/provider/aidl/vts/device_cb.cpp b/camera/provider/aidl/vts/device_cb.cpp index 4698b4ae89..3ec96a1ed9 100644 --- a/camera/provider/aidl/vts/device_cb.cpp +++ b/camera/provider/aidl/vts/device_cb.cpp @@ -429,10 +429,11 @@ bool DeviceCb::processCaptureResultLocked( CameraAidlTest::InFlightRequest::StreamBufferAndTimestamp streamBufferAndTimestamp; auto outstandingBuffers = mUseHalBufManager ? mOutstandingBufferIds : request->mOutstandingBufferIds; + auto bufferId = mUseHalBufManager ? buffer.bufferId : results.frameNumber; auto outputBuffer = outstandingBuffers.empty() ? ::android::makeFromAidl(buffer.buffer) : - outstandingBuffers[buffer.streamId][buffer.bufferId]; + outstandingBuffers[buffer.streamId][bufferId]; streamBufferAndTimestamp.buffer = {buffer.streamId, - buffer.bufferId, + bufferId, outputBuffer, buffer.status, ::android::makeFromAidl(buffer.acquireFence),