obs-studio/libobs
Hector Martin a5d08e347e linux-pulseaudio: fix race conditions
PulseAudio code needs to be called with the PA lock held. This chiefly
fixes multiple races during stream shutdown:

* If the functions are called without the lock held, deferred event
  handling races end up with PA infinite looping on the mainloop, or
  asserting, or other badness, as the reentrant calls cause data
  structure corruption on the PA side.
* If we don't reset our callbacks, PA might call us even after we
  request stream disconnection (since the stream actually getting fully
  shut down is asynchronous), and then we dereference NULL pointers from
  our userdata etc. PA will keep its data structures alive until necessary
  via reference counting, but not ours.

The lock around pa_stream_begin_write doesn't result from any issues I
experienced, but it looks correct; PA doesn't say anywhere that that
function is thread-safe.
2020-12-12 12:05:12 -08:00
..
audio-monitoring linux-pulseaudio: fix race conditions 2020-12-12 12:05:12 -08:00
callback clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
data libobs: Fix Area shaders missing for RGB output 2019-08-31 00:25:24 -07:00
graphics libobs: Allow wrapping D3D11 object with gs_texture_t 2020-11-24 14:39:56 -08:00
media-io libobs: Ignore non-fatal ffmpeg return values during remux 2020-12-02 21:05:43 +01:00
util Add OpenBSD support 2020-11-14 11:55:22 -08:00
CMakeLists.txt CI: Remove explicit LANGUAGE flags for cmake 3.19+ 2020-11-21 12:00:52 -08:00
libobs.pc.in libobs: add ppc64(le) specific flags to libobs.pc 2020-04-27 00:07:18 +02:00
LibObsConfig.cmake.in cmake: Export plugin data destination 2014-09-27 09:41:32 -07:00
LibObsConfigVersion.cmake.in Export libobs cmake target, so external plugins can be built without ugly hacks 2014-05-08 14:43:16 +02:00
obs-audio-controls.c libobs: fix building modules once installed 2019-11-27 14:00:15 -05:00
obs-audio-controls.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-audio.c libobs: fix the pending stop trick 2020-12-10 03:15:13 -08:00
obs-avc.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-avc.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-cocoa.m libobs: Use autoreleasepool for graphics thread 2020-06-08 13:16:35 -07:00
obs-config.h libobs: Update version to 26.1.0 2020-12-09 02:34:15 -08:00
obs-data.c libobs: Return default obj and array rather than current 2020-10-23 22:32:20 -07:00
obs-data.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-defs.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-display.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-encoder.c Merge pull request #2657 from hselasky/improvement 2020-05-21 18:07:53 -07:00
obs-encoder.h UI: Hide encoder if marked internal 2020-02-18 21:37:41 -08:00
obs-ffmpeg-compat.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkey-name-map.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkey.c libobs: Use correct data pointer for hotkey pair 2020-06-01 08:22:47 +02:00
obs-hotkey.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-hotkeys.h libobs: Remove _WIN32 ifdef from enum 2019-11-17 20:30:42 -08:00
obs-interaction.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-internal.h decklink: Add ability to ingest/embed cea 708 captions 2020-11-01 22:28:49 -08:00
obs-module.c libobs: Add functions to get locale text from modules 2020-08-10 12:24:01 -07:00
obs-module.h libobs: Add functions to get locale text from modules 2020-08-10 12:24:01 -07:00
obs-nix.c Add OpenBSD support 2020-11-14 11:55:22 -08:00
obs-output-delay.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-output.c libobs: Fix bad type and size mismatch 2020-11-04 04:45:07 -08:00
obs-output.h libobs: Implement pausing of outputs 2019-07-07 16:38:22 -07:00
obs-properties.c Merge pull request #2257 from Xaymar/fix-remove_by_name-corruption 2020-02-15 20:03:58 -08:00
obs-properties.h libobs: Rename DEPRECATED to OBS_DEPRECATED 2020-01-20 21:44:50 -08:00
obs-scene.c Merge pull request #2657 from hselasky/improvement 2020-05-21 18:07:53 -07:00
obs-scene.h clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-service.c libobs: Change service max res. to res. list 2020-11-13 18:22:53 -08:00
obs-service.h libobs: Change service max res. to res. list 2020-11-13 18:22:53 -08:00
obs-source-deinterlace.c libobs: Separate textures for YUV input 2019-08-09 21:14:29 -07:00
obs-source-transition.c libobs: Implement and use better scaling function for 64-bit integers 2020-04-05 20:27:28 +02:00
obs-source.c decklink: Add ability to ingest/embed cea 708 captions 2020-11-01 22:28:49 -08:00
obs-source.h decklink: Add ability to ingest/embed cea 708 captions 2020-11-01 22:28:49 -08:00
obs-ui.h docs/sphinx: Fix various typos 2019-10-14 17:19:38 -07:00
obs-video-gpu-encode.c libobs: Fix race condition 2019-11-05 12:02:54 -08:00
obs-video.c libobs: Use autoreleasepool for graphics thread 2020-06-08 13:16:35 -07:00
obs-view.c clang-format: Apply formatting 2019-06-23 23:49:10 -07:00
obs-win-crash-handler.c libobs: Add Windows 10 release version to crash log 2020-04-29 20:38:21 -04:00
obs-windows.c libobs: Log Windows 10 Hardware GPU Scheduler 2020-08-26 22:57:52 +02:00
obs.c Merge pull request #3014 from notr1ch/remove-excessive-null-checks 2020-06-21 04:56:45 -07:00
obs.h libobs: Change service max res. to res. list 2020-11-13 18:22:53 -08:00
obs.hpp libobs: Add OBSRef::Get() 2020-08-10 12:24:01 -07:00
obsconfig.h.in Remove BUILD_CAPTIONS build flag 2020-11-02 22:46:55 -06:00