[libcamera-devel] [PATCH] pipeline: raspberrypi: Do not unconditionally free buffers on close

Naushir Patuck naush at raspberrypi.com
Fri Oct 28 15:51:10 CEST 2022


When a camera is terminated, do not unconditionally free buffers in the
RPiCameraData destructor. Otherwise, this causes harmless error log messages
to be displayed if no buffer have previously been allocated.

Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
Tested-by: David Plowman <david.plowman at raspberrypi.com>
Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
 src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 343f8cb2c7ed..1b599fcc9ecf 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -1506,6 +1506,9 @@ void PipelineHandlerRPi::mapBuffers(Camera *camera, const RPi::BufferMap &buffer
 
 void RPiCameraData::freeBuffers()
 {
+	if (!buffersAllocated_)
+		return;
+
 	if (ipa_) {
 		/*
 		 * Copy the buffer ids from the unordered_set to a vector to
-- 
2.25.1



More information about the libcamera-devel mailing list