[libcamera-devel,v2,0/3] Fix Gnome Cheese and multiple camera
mbox series

Message ID 20210826132346.1238420-1-nicolas@ndufresne.ca
Headers show
Series
  • Fix Gnome Cheese and multiple camera
Related show

Message

Nicolas Dufresne Aug. 26, 2021, 1:23 p.m. UTC
From: Nicolas Dufresne <nicolas.dufresne@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(-)