Commit Graph

11394 Commits (a46cc43e6f11f51593601d004db78db77ac2f8d8)

Author SHA1 Message Date
PatTheMav c1740e3636 UI: Add initialization to ensure compat between pthread and NSThread
Ensures that Cocoa knows that we intend to use multiple threads, per
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html#//apple_ref/doc/uid/10000057i-CH15-SW21
2022-07-25 17:27:07 +02:00
gxalpha eea2fd2f3f UI: Add status overlay for macOS dock icon
Adds an implementation for the dock icon status overlay on macOS (which
doesn't rely on QtMacExtras, which means it also works on Qt6).
2022-07-25 16:34:31 +02:00
gxalpha f34393170e UI/forms: Add macOS specific dock overlay icons
Co-Authored-By: Misutaa Asriel <8140068+MisutaaAsriel@users.noreply.github.com>
2022-07-25 16:34:31 +02:00
jp9000 f6f6690ccf obs-ffmpeg: Fix AMD falling back to wrong preset
If the API to query the maximum throughput isn't available, it was
intended to fall back to balanced. This code caused it to vall back to
speed instead because if the API isn't available, max_throughput will be
0. This fixes it to make it only fall back to balanced instead.
2022-07-24 11:18:18 -07:00
jp9000 d68539e267 UI: Fix wrong AMD recording preset (simple output)
"hq" is not a valid preset. "quality" is the correct preset to use.
2022-07-24 11:18:18 -07:00
PatTheMav 7f18bb6a26 mac-syphon: Disable inject functionality on macOS 10.15+
Also disables errors in log resulting from empty strings being passed
to `obs_data_create_from_json`.
2022-07-24 19:51:41 +02:00
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