diff options
author | alk3pInjection <webmaster@raspii.tech> | 2023-07-04 20:04:45 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2023-07-04 20:04:45 +0800 |
commit | e1390d22fae12df2784992b3ba238af8e90eaecc (patch) | |
tree | 52dfbc4cd9931c722b210f063c144fe97a706af5 /camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp | |
parent | b3f20c2aa61e4a6e07e8c06cf3623f1666620e1f (diff) | |
parent | 7c8943fde12ec5fb0f9629746c65e8b1bc78d1b4 (diff) |
Merge tag 'LA.QSSI.13.0.r1-10700-qssi.0' into tachibana-mr1tachibana-mr1
"LA.QSSI.13.0.r1-10700-qssi.0"
Change-Id: I11f0f2cb764e800ff1fd298c5a6443b98cf9a8a3
Diffstat (limited to 'camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp')
-rw-r--r-- | camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp index 70ab7a02b3..b764ad6299 100644 --- a/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp +++ b/camera/provider/aidl/vts/VtsAidlHalCameraProvider_TargetTest.cpp @@ -1846,7 +1846,6 @@ TEST_P(CameraAidlTest, processUltraHighResolutionRequest) { // Generate and verify 10-bit dynamic range request TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector<std::string> cameraDeviceNames = getCameraDeviceNames(mProvider); - int64_t bufferId = 1; CameraMetadata settings; for (const auto& name : cameraDeviceNames) { @@ -1927,12 +1926,12 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { // Stream as long as needed to fill the Hal inflight queue std::vector<CaptureRequest> 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<InFlightRequest> inflightReq = std::make_shared<InFlightRequest>( static_cast<ssize_t>(halStreams.size()), false, supportsPartialResults, partialResultCount, std::unordered_set<std::string>(), resultQueue); - CaptureRequest& request = requests[frameNumber]; + CaptureRequest& request = requests[requestId]; std::vector<StreamBuffer>& outputBuffers = request.outputBuffers; outputBuffers.resize(halStreams.size()); @@ -1941,6 +1940,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector<buffer_handle_t> 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) { @@ -1959,14 +1959,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; @@ -1974,7 +1973,7 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { { std::unique_lock<std::mutex> l(mLock); - mInflightMap[frameNumber] = inflightReq; + mInflightMap[bufferId] = inflightReq; } } @@ -1990,7 +1989,10 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { std::vector<int32_t> {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<std::mutex> l(mLock); while (!inflightReq->errorCodeValid && @@ -2000,6 +2002,8 @@ TEST_P(CameraAidlTest, process10BitDynamicRangeRequest) { ASSERT_NE(std::cv_status::timeout, mResultCondition.wait_until(l, timeout)); } + waitForReleaseFence(inflightReq->resultOutputBuffers); + ASSERT_FALSE(inflightReq->errorCodeValid); ASSERT_NE(inflightReq->resultOutputBuffers.size(), 0u); verify10BitMetadata(mHandleImporter, *inflightReq, profile); |