[libcamera-devel] [PATCH] libcamera: Release all devices on shutdown

Christian Rauch Rauch.Christian at gmx.de
Sat Oct 8 13:15:00 CEST 2022


Some devices may not be released via their 'PipelineHandler'. This results
in these devices still being acquired or busy on shutdown. Make sure that
all devices are released when DeviceEnumerator is deconstructed.

Signed-off-by: Christian Rauch <Rauch.Christian at gmx.de>
---
 src/libcamera/device_enumerator.cpp | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
index f2e055de..d0968a0a 100644
--- a/src/libcamera/device_enumerator.cpp
+++ b/src/libcamera/device_enumerator.cpp
@@ -161,12 +161,8 @@ std::unique_ptr<DeviceEnumerator> DeviceEnumerator::create()

 DeviceEnumerator::~DeviceEnumerator()
 {
-	for (const std::shared_ptr<MediaDevice> &media : devices_) {
-		if (media->busy())
-			LOG(DeviceEnumerator, Error)
-				<< "Removing media device " << media->deviceNode()
-				<< " while still in use";
-	}
+	for (const std::shared_ptr<MediaDevice> &media : devices_)
+		media->release();
 }

 /**
--
2.34.1



More information about the libcamera-devel mailing list