[libcamera-devel] [PATCH v2 0/3] Fix Gnome Cheese and multiple camera

Nicolas Dufresne nicolas at ndufresne.ca
Thu Aug 26 15:23:43 CEST 2021


From: Nicolas Dufresne <nicolas.dufresne at collabora.com>

This patchset address issues seen when trying to stream from multiple
cameras at the same time or when using Gnome Cheese software. The core
of the issue was that multiple CameraManager instances were created.
Two deadlocks were encountered during testing and are fixed.

Nicolas Dufresne (3):
  [1] gstreamer: Fix deadlock when last allocator ref is held by buffer
  [2] gstreamer: Fix concurrent access issues to CameraManager
  [3] libcamerasrc: Fix deadlock on EOS

Changed in v2:
  - [2] Drop the deleter from the singleton shared ptr (no need to call stop())
  - [2] Use the pointer instead of expiration

 src/gstreamer/gstlibcamera-utils.cpp    | 24 ++++++++++++++++++++++++
 src/gstreamer/gstlibcamera-utils.h      |  6 ++++--
 src/gstreamer/gstlibcameraallocator.cpp | 17 ++++++++++-------
 src/gstreamer/gstlibcameraprovider.cpp  | 22 ++--------------------
 src/gstreamer/gstlibcamerasrc.cpp       | 23 +++++++++++------------
 5 files changed, 51 insertions(+), 41 deletions(-)

-- 
2.31.1



More information about the libcamera-devel mailing list