[PATCH 5/5] libcamera: ipu3: Return Raw buffers on error
Jacopo Mondi
jacopo.mondi at ideasonboard.com
Wed Feb 21 18:40:13 CET 2024
When a Request is cancelled, all its application-provided buffers
are completed and the paramters and stats buffer are made available
again to the pipeline handler.
If the RAW buffer doesn't come from the application (no RAW stream
requested) it comes from the CIO2Device internal pool. Return it to
the CIO2 pool in case of error.
Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
---
src/libcamera/pipeline/ipu3/ipu3.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index f61e4a10892e..bcbcfd3dc290 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -1393,6 +1393,9 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)
availableParamBuffers_.push(request->paramBuffer);
availableStatBuffers_.push(request->statBuffer);
+ /* Return RAW buffer to the CIO2. */
+ cio2_.tryReturnBuffer(buffer);
+
pipe()->completeRequest(request->_o<Request>());
return;
}
--
2.43.0
More information about the libcamera-devel
mailing list