libcamera: pipeline: raspberrypi: Free buffers when a camera is released

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@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
David Plowman 2022-11-11 13:30:25 +00:00 committed by Kieran Bingham
parent a5fdf63e90
commit d2636d5964

View file

@ -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);