[PATCH v2 4/4] libcamera: ipu3: Return Raw buffers on error
Kieran Bingham
kieran.bingham at ideasonboard.com
Tue Mar 12 12:27:46 CET 2024
Quoting Jacopo Mondi (2024-03-11 12:32:32)
> 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>
> Reviewed-by: Daniel Scally <dan.scally at ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham 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 0c9d3167d2e6..57d0d6ed4758 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -1384,6 +1384,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.2
>
More information about the libcamera-devel
mailing list