mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-01 15:49:51 +08:00
91917f81201a6b58d754a6f7916ee93ab1e6ff1b
The monitoring deduplication was previously checking at each audio tick the whole audio tree for Audio Output Capture (AOC) devices used for monitoring. The profiling did not show any big impact on the audio callback. But due to reports of a significant slowdown for scenes with numerous audio sources, we have moved the check on AOC from the audio thread to the UI thread. So we implemented obs_source_audio_output_capture_device_changed which is triggered whenever: - a monitoring device is changed in Settings > Audio, - an Audio Output Capture source changes its device or on startup. This function compares the AOC device with the monitoring device in UI thread. If they are identical, a signal is sent to the audio thread to add an audio task updating the AOC duplicating source pointer at the end of an audio tick. This triggers monitoring deduplication if the ptr is not NULL. The calls in the AOC are implemented in next commits. The rest of the logic in obs-audio.c is the same except on one count, which is that we check against the muted state of the AOC rather than its user_muted; with the new logic, muted works better. Signed-off-by: pkv <pkv@obsproject.com>
OBS Studio <https://obsproject.com> =================================== .. image:: https://github.com/obsproject/obs-studio/actions/workflows/push.yaml/badge.svg?branch=master :alt: OBS Studio Build Status - GitHub Actions :target: https://github.com/obsproject/obs-studio/actions/workflows/push.yaml?query=branch%3Amaster .. image:: https://badges.crowdin.net/obs-studio/localized.svg :alt: OBS Studio Translation Project Progress :target: https://crowdin.com/project/obs-studio .. image:: https://img.shields.io/discord/348973006581923840.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2 :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 page: https://obsproject.com/wiki/How-To-Contribute-Translations-For-OBS - 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. SAST Tools ---------- `PVS-Studio <https://pvs-studio.com/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source>`_ - static analyzer for C, C++, C#, and Java code.
Description
OBS Studio - Free and open source software for live streaming and screen recording
cc-plus-plusdirectshowfacebook-liveffmpeggame-capturelive-streamingscreen-capturetwitch-tvvideo-recordingyoutube-live
Readme
386 MiB
Languages
C
52.8%
C++
35.7%
CMake
3.5%
Swift
3%
Objective-C
2.7%
Other
2.1%