0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

11438 Commits

Author SHA1 Message Date
PatTheMav
d5bed42f2d mac-syphon: Fix broken license display button on macOS 11+ 2022-07-24 19:51:41 +02:00
pkv
b555dcb8e2 obs-filter: Add RTX Background Removal filter
This adds support for RTX video Effects SDK.
The Background Removal filter relies on NVIDIA RTX AI Greenscreen FX.
A front speaker is separated from a background by applying
an alpha mask computed by AI.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 11:03:23 -04:00
Ryan Foster
933255a680
Merge pull request #6372 from pkviet/rtxaudio
obs-filter: Add new RTX audio fx (dereverb & combined denoiser+ dereverb)
2022-07-24 10:31:36 -04:00
pkv
4ac96e1352
obs-filter: Add NVIDIA Room Echo Removal to noise suppression filter
This adds the NVIDIA Room Echo Removal (dereverb) & a combined
Room Echo Removal + Noise Removal.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 16:18:47 +02:00
pkv
048090abdb
obs-filter: Fix loading of NVIDIA Audio Effects SDK
The NVIDIA Audio Effects SDK currently interferes with the Video
Effects SDK by not releasing a CUDA context.
Till this is fixed upstream, we do it manually. This also requires
 an SDK update to 1.1.0.5 for NVIDIA Audio Effects SDK.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 16:18:47 +02:00
pkv
cc2030ef06
obs-filter: Update NVIDIA Audio SDK
This updates the support of NVIDIA Audio Effects SDK to 1.1.0.5
Additionally, we add support for some CUDA functions required for
fixing a bug.

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-24 16:18:38 +02:00
gxalpha
b72f15dcef mac-capture: Don't show apps with empty name in SCK
SCK's application list has one entry with empty name and bundle ID which
belongs to WindowServer. This is not worth exposing since an empty entry
would confuse users and nothing would get captured if selected.
2022-07-24 13:59:09 +02:00
gxalpha
22baff138b mac-capture: Add deprecated flag to traditional captures if SCK exists
Marking a source as deprecated will make it harder for users to find
when creating a new source. We don't currently plan on removing
traditional display and window capture, however ScreenCaptureKit will be
the preferred capture method going forward.
2022-07-24 13:59:09 +02:00
gxalpha
33a48a6e9c mac-capture: Add label about missing audio on macOS 12 to SCK 2022-07-24 13:59:09 +02:00
PatTheMav
94cf50a8ce mac-capture: Add more verbose log warning for missing permissions 2022-07-24 13:59:09 +02:00
PatTheMav
1d11c2d933 mac-capture: Fix compiler warnings for unused variables and data loss 2022-07-24 13:59:09 +02:00
PatTheMav
0df6c74f7d mac-capture: Make properties window reactive to selected capture type 2022-07-24 13:59:09 +02:00
PatTheMav
ca1a37586f mac-capture: Increase required macOS version for ScreenCaptureKit 2022-07-24 13:59:09 +02:00
Developer-Ecosystem-Engineering
81b631a855 Add support in "macOS ScreenCapture" for capturing audio through ScreenCaptureKit in macOS 13. By default, OBS will capture the audio for the frame content its capturing and exclude OBS own audio. For additional information
on the capabilities of audio capture refer to the documentation https://developer.apple.com/documentation/screencapturekit/ or watch the session "Meet ScreenCaptureKit".

Currently audio capture typically happens via virtual devices set up with 3rd party products. This requires additional installation and configuration by users.
Including the audio with the existing CMBuffers will make it easier to manage audio sync with video frames. Additionally, you can capture distinct audio tracks from multiple apps at once,
like a call with friends +  screen content.

macOS 13 on a 2019 16" MacBook Pro
macOS 13 on a 2022 M1 Pro Macbook Pro

Tested with multiple games + Discord, FaceTime, Apple Music and Safari tabs playing audio content.

* Bug fix (non-breaking change which fixes an issue)
* Performance enhancement (non-breaking change which improves efficiency)

* Additional control over what audio content to capture
* Logic to manage audio & frame sync
2022-07-24 13:59:09 +02:00
Developer-Ecosystem-Engineering
9ed5062e59 mac-capture: Add support for improved window capture in macOS 12.3
Add a new capture plugin called General Capture that allows for capture
of an entire desktop, a single window, or all windows of an application
2022-07-24 13:59:09 +02:00
Jim
4e1ba08701
Merge pull request #5218 from jpark37/win-audio-per-process
win-wasapi: Add support for capturing a process
2022-07-23 18:19:44 -07:00
jpark37
0d129988a9 libobs: Allow Chrome class executable matching
Lets OBS find Spotify.exe even if the window title changes.
2022-07-23 17:41:34 -07:00
jpark37
1610ac04ff UI: Add application audio capture to toolbar 2022-07-23 17:41:34 -07:00
jpark37
769a29bd1a win-wasapi: Add support for capturing a process
Use new process output API, and retrofit existing WASAPI abstractions.

Marked as "(BETA)" until we figure out the crackling at 60 minutes.
2022-07-23 17:41:34 -07:00
jpark37
69ff026647 libobs, win-capture: Share window helper code
Add "ms_" prefix as makeshift namespace.
2022-07-23 17:41:34 -07:00
jpark37
9b46795d57 libobs, UI: Add OBS_ICON_TYPE_PROCESS_AUDIO_OUTPUT 2022-07-23 17:41:34 -07:00
jpark37
7864c8649a libobs/util: Add WinModule RAII wrapper 2022-07-23 17:41:34 -07:00
jpark37
1aae05bd70 cmake: Enable ENABLE_HEVC by default 2022-07-23 17:26:24 -07:00
tt2468
70f33f7794 obs-outputs: Improve librtmp timeouts on Linux
Replaces the usage of SO_SNDTIMEO with TCP_USER_TIMEOUT on Linux.
- Noted as more effective than SO_SNDTIMEO by multiple sources.
- Drops TCP connection on timeout instead of returning send() errors,
meaning more predictable reconnect timing and reconnect.
- Timeout period actually reflected in practice. SO_SNDTIMEO takes
double the timeout time than actually requested to time out on
unix, whereas WinSock actually waits the specified time.
2022-07-23 17:24:11 -07:00
tytan652
6c7f8853a8 UI: Use combobox data field for Theme value in settings
Use QComboBox item data rather than always checking for the default
theme custom string.
2022-07-24 10:23:18 +10:00
tytan652
6d06052c51 UI: Enforce Fusion Qt style on Linux
The Breeze Qt style plugin adds frame arround QDockWidget with QPainter
which can not be modifed. To avoid this the base style is enforce to the
Qt default style on Linux: Fusion.
2022-07-24 10:22:18 +10:00
PatTheMav
1766f01b7a UI: Fix crash on macOS if no python path is set in configuration
Obvious fix guarding against calling the std::string constructor with
a NULL pointer.
2022-07-24 10:11:54 +10:00
Norihiro Kamae
5ea10fec82 UI: Remove unused functions for audio mixers
Functions `save_audio_source` and `load_audio_source` are defined but
never called from any code. Also not defined in any header file.
2022-07-23 16:49:21 -07:00
Ryan Foster
614ff22e8d obs-outputs: Fix TLS_client init for mbedTLS 3.1.0+
When trying to update to mbedTLS 3.2.1, I ran into failures with RTMPS
output. After consulting an mbedTLS implementation example, I determined
that we were not setting up the SSL/TLS context config in the correct
order, causing the connection to fail. Performing the setup in the
recommended order fixes that.
2022-07-23 16:40:59 -07:00
tytan652
fc7af80f84 UI: Hide network features if a non-RTMP service is set
Reimplementation of bc80d0c and f2e6122, because they have to be
reverted by 0b9a8aa.
2022-07-23 16:29:10 -07:00
Kurt Kartaltepe
57c9844f15 v4l2,scripting: Add more thread names
This sets some thread names for the scripting backend's defer thread and
the v4l2 udev thread.
2022-07-24 09:21:58 +10:00
gxalpha
e3f416f3fc UI: Replace QMessageBox setButtonText with addButton 2022-07-22 09:37:17 -04:00
gxalpha
05c6a408e3 UI: Fix Qt 6 position deprecations 2022-07-22 09:37:17 -04:00
gxalpha
49e37db952 UI: Use pipe operator instead of plus for Qt keys 2022-07-22 09:37:17 -04:00
tytan652
17ba8359e4 deps,libobs,plugins: Fix discarded-qualifiers warnings with FFmpeg 5 2022-07-22 08:50:36 -04:00
Vainock
eb06594381 Use property suffixes for units everywhere 2022-07-22 08:24:51 -04:00
Matt Gajownik
30e6613fed obs-browser: Update version to 2.18.2
cdb170c - Avoid redefining UNUSED_PARAMETER
e0bd234 - Revert "Fix macro-redefine warning with Qt loop enabled"
7e90b4a - Fix encoding of base64.cpp
e786624 - Fix helper-info filename for case sensitive partition
002fc52 - Fix macro-redefine warning with Qt loop enabled
2022-07-22 10:01:51 +10:00
Richard Stanway
88226db6b3
obs-ffmpeg: Fix AMF AVC / HEVC check logic 2022-07-22 00:45:34 +02:00
jp9000
2b957c9368 UI: Update simple output to use new AMD encoder 2022-07-21 15:29:25 -07:00
OvchinnikovDmitrii
4e140d2ffe obs-ffmpeg: Add texture-based hardware AMD encoder
Adds support for texture-based AMD encoding, with both H264, HEVC, and
HDR support. Falls back to FFmpeg when texture-based encoding cannot be
used for whatever reason.

(Jim note: This is based upon obsproject/obs-studio#4538 by AMD/Luxoft
with fewer files, FFmpeg fallback for software encoding, and HDR
support. I also went to lengths to ensure that FFmpeg command line
parameters also works with it)

Co-authored-by: Jim <obs.jim@gmail.com>
2022-07-21 15:29:25 -07:00
PatTheMav
4e206896b2
cmake: Fix public header files being installed to rundir
Fixes oversight from https://github.com/obsproject/obs-studio/pull/6768
2022-07-21 22:35:09 +02:00
PatTheMav
ff4f4fcb92 frontend-tools: Upgrade legacy Python library paths to modern format
Updates the value at runtime and also stores it in the configuration.
2022-07-21 12:16:36 -04:00
PatTheMav
c4f12f9055 cmake: Fix RPATH on Linux for frontend-tools to find obs-scripting
This will fix frontend-tools not being able to find the obs-scripting
library when OBS is compiled as a portable application.
2022-07-21 12:16:36 -04:00
PatTheMav
ab21c7e5b0 obs-scripting: Add support for multiple Python 3 versions
This changes the way obs-scripting looks for and loads an available
Python 3 library. It tries to find a best possible version (starting
with Python 3.10) down to and including Python 3.6 by existing file
naming conventions and loads the most recent variant it can find.

User specified search path is either a Python installation directory
(Windows), or a Framework directory containing `Python.framework`
(macOS). The dll or dylib names are composed automatically.
The Python home path is also composed automatically on macOS (where
it has to point inside the Framework directory).
2022-07-21 12:16:36 -04:00
PatTheMav
47b3ff5e64 obs-scripting: Switch swig to stable ABI usage 2022-07-21 12:16:36 -04:00
PatTheMav
4afc2c8e6f cmake: Change desired Python3 DLL name to stable ABI variant 2022-07-21 12:16:36 -04:00
Ryan Foster
d88ca3b243 UI: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-20 19:32:34 -04:00
gxalpha
393af9d916 mac-syphon: Ignore 10.13-only deprecation warning 2022-07-21 01:13:16 +02:00
tytan652
4dd1da8a1e cmake: Add EXCLUDE_FROM_ALL to Linux install_headers
Even without it, we still need to run the following command for other
files:
`cmake --install . --component obs_libraries`
2022-07-20 15:08:30 -04:00
tytan652
2ba32763e5 cmake: Add PUBLIC_HEADER DESTINATION for development rundir
Fix a warning thrown by CMake.
2022-07-20 15:08:30 -04:00