gstreamer: libcamerasrc: Delete configuration before stopping camera manager
When closing the libcamerasrc, the reference to camera is released and the camera manager is stopped. However, the camera configuration still exists at that point, and holds a reference to the camera. This leads to a warning from the device enumerator complaining that the media devices are still in use: [1:53:48.792327560] [408] ERROR DeviceEnumerator device_enumerator.cpp:165 Removing media device /dev/media1 while still in use [1:53:48.792354022] [408] ERROR DeviceEnumerator device_enumerator.cpp:165 Removing media device /dev/media0 while still in use A crash follows when the libcamerasrc is finalized, as deleting the camera configuration will then release the last reference to the camera, which attempts to delete the camera object with deleteLater() without an event dispatcher. Fix it by deleting the camera configuration before stopping the camera manager. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
This commit is contained in:
parent
b394dc8b80
commit
fa63d428ae
1 changed files with 2 additions and 0 deletions
|
@ -499,6 +499,8 @@ gst_libcamera_src_close(GstLibcameraSrc *self)
|
|||
|
||||
GST_DEBUG_OBJECT(self, "Releasing resources");
|
||||
|
||||
state->config_.reset();
|
||||
|
||||
ret = state->cam_->release();
|
||||
if (ret) {
|
||||
GST_ELEMENT_WARNING(self, RESOURCE, BUSY,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue