Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c58cf4c4 authored by Emilian Peev's avatar Emilian Peev
Browse files

Camera: Close acquire fences on failed buffers

Buffers that didn't get a chance to be processed
might still hold valid acquire fences. Check and
close those if necessary.

Bug: 38229510
Test: Manual using application
Change-Id: I8e823a655cc30ed966e277ace090e96c64ba1c8c
parent 2d12b8e3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -4080,6 +4080,13 @@ void Camera3Device::RequestThread::cleanUpFailedRequests(bool sendRequestError)
        }

        for (size_t i = 0; i < halRequest->num_output_buffers; i++) {
            //Buffers that failed processing could still have
            //valid acquire fence.
            int acquireFence = (*outputBuffers)[i].acquire_fence;
            if (0 <= acquireFence) {
                close(acquireFence);
                outputBuffers->editItemAt(i).acquire_fence = -1;
            }
            outputBuffers->editItemAt(i).status = CAMERA3_BUFFER_STATUS_ERROR;
            captureRequest->mOutputStreams.editItemAt(i)->returnBuffer((*outputBuffers)[i], 0);
        }