[libcamera-devel] [PATCH 2/2] libcamera: pipeline: raspberrypi: Free buffers when a camera is released
David Plowman
david.plowman at raspberrypi.com
Fri Nov 11 14:30:25 CET 2022
Implement the PipelineHandlerRPi::releaseDevice method which allows
us to free any allocated buffers when a camera is released.
Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
---
src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index f15fa28b..785eddf9 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -337,6 +337,8 @@ public:
bool match(DeviceEnumerator *enumerator) override;
+ void releaseDevice(Camera *camera) override;
+
private:
RPiCameraData *cameraData(Camera *camera)
{
@@ -1193,6 +1195,12 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
return !!numCameras;
}
+void PipelineHandlerRPi::releaseDevice(Camera *camera)
+{
+ RPiCameraData *data = cameraData(camera);
+ data->freeBuffers();
+}
+
int PipelineHandlerRPi::registerCamera(MediaDevice *unicam, MediaDevice *isp, MediaEntity *sensorEntity)
{
std::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);
--
2.30.2
More information about the libcamera-devel
mailing list