OBS Studio - Free from stubborn peops https://obsproject.com
Find a file
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
.github CI: Update macOS to Qt 5.15.2 and deps 2020-12-11 2020-12-11 20:51:22 +01:00
additional_install_files Improve additional_install_files for debug/release 2014-07-18 22:41:11 -07:00
CI CI: Add decklink-captions to dylibbundler fixups 2020-11-27 20:56:47 +01:00
cmake cmake: Make sure to copy other mbedtls libraries 2020-11-23 12:29:59 -08:00
deps deps/json11: Update to most recent version 2020-12-09 22:23:03 -08:00
docs/sphinx docs: Fix GitHub Actions doc check warnings 2020-10-16 16:27:38 -07:00
libobs linux-pulseaudio: fix race conditions 2020-12-12 12:05:12 -08:00
libobs-d3d11 libobs: Allow wrapping D3D11 object with gs_texture_t 2020-11-24 14:39:56 -08:00
libobs-opengl CI: Remove explicit LANGUAGE flags for cmake 3.19+ 2020-11-21 12:00:52 -08:00
libobs-winrt libobs-winrt: Fix misnamed function 2020-11-13 13:21:10 -08:00
plugins obs-browser: Add obsExit event 2020-12-11 18:49:00 -08:00
test decklink: Clean up warnings introduced by caption code 2020-11-03 17:00:14 -08:00
UI UI: Determine rate control after creating encoders 2020-12-12 02:43:35 +01:00
.cirrus.yml CI: Fix swig dependency on FreeBSD 2020-10-03 05:38:46 -07:00
.clang-format Apply clang-format to objective c code 2019-07-09 13:39:13 -05:00
.editorconfig .editorconfig: Add file to speed up editor configuration 2017-06-14 21:35:09 -05:00
.git-blame-ignore-revs .git-blame-ignore-revs: Add file to handle mass reformatting 2019-06-27 01:09:31 +09:00
.gitattributes Fix ffmpeg/x264 find modules according to cmake find module naming conventions 2014-05-22 13:03:47 +02:00
.gitignore linux-v4l2: Selective stream restart 2020-05-24 17:05:00 +01:00
.gitmodules enc-amf: Update to 2.5.0.1 and update repository address 2018-09-28 10:54:19 +02:00
.mailmap mailmap: Disambiguate between another author 2017-02-22 16:04:45 +01:00
AUTHORS Update translations from Crowdin 2020-11-25 20:11:39 +01:00
azure-pipelines.yml CI: Fix Azure macOS pipeline to use new build script 2020-09-09 18:38:34 +02:00
CMakeLists.txt Remove BUILD_CAPTIONS build flag 2020-11-02 22:46:55 -06:00
COMMITMENT Add GPL Cooperation Commitment to base directory 2019-01-24 02:02:49 -05:00
CONTRIBUTING.rst CONTRIBUTING.rst: Update CONTRIBUTING doc 2020-10-31 19:30:01 -04:00
COPYING deps-w32-pthreads: Update FSF address 2015-07-11 09:10:27 -07:00
formatcode.sh CI: Improve formatcode.sh efficiency 2020-05-24 14:13:45 -07:00
INSTALL Update INSTALL 2018-07-14 08:21:00 +01:00
README.rst README.rst: Remove Mantis 2020-08-11 05:11:24 -05:00

OBS Studio <https://obsproject.com>
===================================

.. image:: https://dev.azure.com/obsjim/obsjim/_apis/build/status/obsproject.obs-studio?branchName=master
   :alt: OBS Studio Build Status - Azure Pipelines
   :target: https://dev.azure.com/obsjim/obsjim/_build/latest?definitionId=1&branchName=master

.. image:: https://d322cqt584bo4o.cloudfront.net/obs-studio/localized.svg
   :alt: OBS Studio Translation Project Progress
   :target: https://crowdin.com/project/obs-studio

.. image:: https://discordapp.com/api/guilds/348973006581923840/widget.png?style=shield
   :alt: OBS Studio Discord Server
   :target: https://obsproject.com/discord

What is OBS Studio?
-------------------

  OBS Studio is software designed for capturing, compositing, encoding,
  recording, and streaming video content, efficiently.

  It's distributed under the GNU General Public License v2 (or any later
  version) - see the accompanying COPYING file for more details.

Quick Links
-----------

 - Website: https://obsproject.com

 - Help/Documentation/Guides: https://github.com/obsproject/obs-studio/wiki

 - Forums: https://obsproject.com/forum/

 - Build Instructions: https://github.com/obsproject/obs-studio/wiki/Install-Instructions

 - Developer/API Documentation: https://obsproject.com/docs

 - Donating/backing/sponsoring: https://obsproject.com/contribute

 - Bug Tracker: https://github.com/obsproject/obs-studio/issues

Contributing
------------

 - If you would like to help fund or sponsor the project, you can do so
   via `Patreon <https://www.patreon.com/obsproject>`_, `OpenCollective
   <https://opencollective.com/obsproject>`_, or `PayPal
   <https://www.paypal.me/obsproject>`_.  See our `contribute page
   <https://obsproject.com/contribute>`_ for more information.

 - If you wish to contribute code to the project, please make sure to
   read the coding and commit guidelines:
   https://github.com/obsproject/obs-studio/blob/master/CONTRIBUTING.rst

 - Developer/API documentation can be found here:
   https://obsproject.com/docs

 - If you wish to contribute translations, do not submit pull requests.
   Instead, please use Crowdin.  For more information read this thread:
   https://obsproject.com/forum/threads/how-to-contribute-translations-for-obs.16327/

 - Other ways to contribute are by helping people out with support on
   our forums or in our community chat.  Please limit support to topics
   you fully understand -- bad advice is worse than no advice.  When it
   comes to something that you don't fully know or understand, please
   defer to the official help or official channels.