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:
parent
a5fdf63e90
commit
d2636d5964
1 changed files with 8 additions and 0 deletions
|
@ -337,6 +337,8 @@ public:
|
||||||
|
|
||||||
bool match(DeviceEnumerator *enumerator) override;
|
bool match(DeviceEnumerator *enumerator) override;
|
||||||
|
|
||||||
|
void releaseDevice(Camera *camera) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
RPiCameraData *cameraData(Camera *camera)
|
RPiCameraData *cameraData(Camera *camera)
|
||||||
{
|
{
|
||||||
|
@ -1193,6 +1195,12 @@ bool PipelineHandlerRPi::match(DeviceEnumerator *enumerator)
|
||||||
return !!numCameras;
|
return !!numCameras;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PipelineHandlerRPi::releaseDevice(Camera *camera)
|
||||||
|
{
|
||||||
|
RPiCameraData *data = cameraData(camera);
|
||||||
|
data->freeBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
int PipelineHandlerRPi::registerCamera(MediaDevice *unicam, MediaDevice *isp, MediaEntity *sensorEntity)
|
int PipelineHandlerRPi::registerCamera(MediaDevice *unicam, MediaDevice *isp, MediaEntity *sensorEntity)
|
||||||
{
|
{
|
||||||
std::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);
|
std::unique_ptr<RPiCameraData> data = std::make_unique<RPiCameraData>(this);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue