3674 Commits

Author SHA1 Message Date
jpark37
8b9fb03d06 obs-filters: Add HDR bypass for color correction
Not sure how to implement controls for HDR, so skip unless SDR for now.
2022-07-25 13:49:59 -07: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
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
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
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
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
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
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
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
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
gxalpha
393af9d916 mac-syphon: Ignore 10.13-only deprecation warning 2022-07-21 01:13:16 +02:00
tytan652
8409f72f60 plugins: Replace OBS_UNUSED with UNUSED_PARAMETER
OBS_UNUSED is not portable to MSVC.
2022-07-20 08:22:08 +02:00
tytan652
79480c98d9 aja: Remove unused parameters 2022-07-20 08:22:08 +02:00
tytan652
fcc94634d9 obs-ffmpeg: Remove unused parameter 2022-07-20 08:22:04 +02:00
Norihiro Kamae
317780ca1b aja: Remove unnecessary .keepme files
Since the directory contains some files, .keepme, which is intended to
keep an empty directory on a git repository, is unnecessary.
2022-07-19 14:40:32 -04:00
Norihiro Kamae
1005022621 obs-filters: Remove unnecessary OBS_UNUSED attribute
The attribute OBS_UNUSED was added at 49e9d4994 but the parameter is
read in the function if LIBSPEEXDSP_ENABLED is defined
2022-07-19 11:01:00 -04:00
Norihiro Kamae
7e3656ab33 plugins: Cleanup unused-parameters
- Remove unnecessary UNUSED_PARAMETER
- Add OBS_UNUSED attribute to unused parameters
- Also removes unused variables
2022-07-19 11:01:00 -04:00
tytan652
5ff07c63b6 mac-videotoolbox: Guard hardware_accelerated check behind macOS 10.14 2022-07-19 12:46:42 +02:00
tytan652
a81a9ea113 mac-avcapture: Fix null-conversion warning 2022-07-19 12:46:42 +02:00
Richard Stanway
22ef40ba17
text-freetype2: Don't read / write empty size arrays 2022-07-18 23:23:12 +02:00
Richard Stanway
174e91f211
rtmp-services: Avoid calling bmemdup on NULL resolution list 2022-07-18 23:12:49 +02:00
jpark37
5738f63549 obs-ffmpeg: Fix type mismatch 2022-07-18 03:52:04 -07:00
jpark37
f85d71abe8 aja: Suppress C4996
NTV2TestPatternGen::DrawTestPattern overloads are deprecated.
2022-07-18 03:52:04 -07:00
jpark37
f03827eb63 text-freetype2: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-18 03:52:04 -07:00
jpark37
cb5f718d1d obs-outputs: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-18 03:52:04 -07:00
jpark37
da35719f83 obs-filters: Suppress LNK4098
defaultlib 'MSVCRT' conflicts with use of other libs; use
/NODEFAULTLIB:library
2022-07-18 03:52:04 -07:00
jpark37
9f0769cc82 obs-ffmpeg: Suppress NVENC preset warnings for now
Top men are working on upgrading the presets.
2022-07-18 03:52:04 -07:00
Matt Gajownik
8ead7186be obs-browser: Update version to 2.18.1
cfad34d - Use auto release refs
64c1796 - Handle SSL cert date invalid error in browser panels
394d6f7 - Back up then restore POSIX signal handlers on CefInitialize
161ffd2 - Replace type mismatch with range-based for loop
2022-07-17 16:33:50 +10:00
Norihiro Kamae
d7b363a7c4 aja: Increment aja-source version for buffering setting
Add aja-source version 2 to differentiate buffering settings, which is
implemented in a255b0f74.
To register two versions, remove to return obs_source_info and register
the source inside aja-source.cpp.
Also revise aja-output.cpp to register aja-output to keep consistency of
function type.
2022-07-16 16:47:19 -07:00
Norihiro Kamae
56c502b254 obs-qsv11: Fix timestamp for fractional frame rate
This commit rounds the timestamp to the integer multiple of fps_den.
Prior to this change, since the timestamp in MFX is defined in units of
90 kHz, timestamps for 60000/1001 fps is not accurately expressed. Also
the encoder sometimes returns the decode time stamp slightly off.
Hence, the timestamp in OBS becomes not a multiple of fps_den after
converting back from the timestamp in MFX.
2022-07-14 19:20:40 -04:00
PatTheMav
9145e3063d win-capture: Fix subprojects not installing on incremental builds
When changing a subproject (e.g. graphics-hook), the generated binaries
are not installed without also building win-capture. This commit enables
the subprojects to be treated as "plugins" which are installed to rundir
and also the installation directory without any additional workarounds.
2022-07-13 15:52:13 -04:00
PatTheMav
e2e06f6f08 mac-syphon: Fix usage of methods deprecated since macOS 11.0
`absolutePathForAppBundleWithIdentifier` and `openFile` have both been
deprecated since macOS 11.0. This pr uses the correct modern APIs when
OBS is compiled for macOS 11.0 or more recent and falls back to the
legacy APIs when either compiled against or run on older macOS versions.
2022-07-11 23:19:21 -07:00
jpark37
df96e68ca6 cmake: Disable LNK4099 warning
We are very unlikely to ship PDBs for deps.
2022-07-11 22:07:10 -07:00