obs-studio/plugins
Hector Martin b7567f23fb linux-jack: fix deadlock when closing the client
This lock causes a deadlock when freeing the JACK client while a
process callback is pending:

deactivate_jack -> locks mutex
   JACK thread -> calls jack_process_callback
   jack_process_callback -> blocks on mutex
jack_client_close -> joins JACK thread
(deadlock as the process callback never returns)

Instead, just don't lock the mutex. This is only mutexing on
creation/destruction of the JACK client. This is not necessary: the
process callback will only run after jack_activate (which is right
before the mutex is released in jack_init()), and will stop running
by the time jack_client_close returns. We don't actually need to
unregister any ports, so just call jack_client_close first thing in
deactivate_jack, which will guarantee the process callback has
completed before returning.

In fact, jack_process_callback isn't allowed to lock any mutexes or
allocate any memory at all, so this plug-in is still broken in this way
as obs_source_output_audio does that. This can cause audio xruns, as
realtime guarantees are violated. This is something that should be
fixed in the future, but at least it's not a deadlock.
2020-12-12 12:05:28 -08:00
..
coreaudio-encoder Update translations from Crowdin 2020-11-25 20:11:39 +01:00
decklink Update translations from Crowdin 2020-11-25 20:11:39 +01:00
enc-amf@89f7de349e enc-amf: Fix inability to set bitrate in latest AMD driver 2020-11-26 09:41:00 -08:00
image-source Update translations from Crowdin 2020-11-25 20:11:39 +01:00
linux-alsa Update translations from Crowdin 2020-11-25 20:11:39 +01:00
linux-capture Update translations from Crowdin 2020-11-25 20:11:39 +01:00
linux-jack linux-jack: fix deadlock when closing the client 2020-12-12 12:05:28 -08:00
linux-pulseaudio Update translations from Crowdin 2020-11-25 20:11:39 +01:00
linux-v4l2 linux-v4l2: Fix bashism in v4l2loopback module detection 2020-12-08 13:51:40 +11:00
mac-avcapture Update translations from Crowdin 2020-11-25 20:11:39 +01:00
mac-capture Update translations from Crowdin 2020-11-25 20:11:39 +01:00
mac-syphon Update translations from Crowdin 2020-11-25 20:11:39 +01:00
mac-virtualcam mac-virtualcam: Build a universal x86_64+arm64 binary for M1 Macs 2020-12-03 19:13:44 -08:00
mac-vth264 Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-browser@751cd04a3c obs-browser: Add obsExit event 2020-12-11 18:49:00 -08:00
obs-ffmpeg Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-filters Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-libfdk Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-outputs Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-qsv11 Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-text Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-transitions Update translations from Crowdin 2020-11-25 20:11:39 +01:00
obs-vst@cca219fa36 Update translations from Crowdin 2020-09-27 23:07:27 +02:00
obs-x264 Update translations from Crowdin 2020-11-25 20:11:39 +01:00
oss-audio Update translations from Crowdin 2020-11-25 20:11:39 +01:00
rtmp-services Update translations from Crowdin 2020-11-25 20:11:39 +01:00
sndio sndio: remove strerror_l 2020-12-08 14:21:20 +11:00
text-freetype2 Update translations from Crowdin 2020-11-25 20:11:39 +01:00
vlc-video vlc-video: Free media struct 2020-12-03 14:28:26 -08:00
win-capture Update translations from Crowdin 2020-11-25 20:11:39 +01:00
win-dshow Update translations from Crowdin 2020-11-25 20:11:39 +01:00
win-ivcam Merge pull request #1944 from WizardCM/windows-rc-definition 2020-04-18 18:27:22 -05:00
win-mf Update translations from Crowdin 2020-11-25 20:11:39 +01:00
win-wasapi Update translations from Crowdin 2020-11-25 20:11:39 +01:00
CMakeLists.txt Add sndio support (#3715) 2020-11-14 11:58:55 -08:00