[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