Commit Graph
4854 Commits
Author SHA1 Message Date
jeieaandRyan Foster 614fb6ae09 nv-filters: Fix warnings with Visual Studio 2022 17.14
Following error occurs with Visual Studio 2022 v17.14 Preview 4.0 and
Windows 11 SDK 10.0.26100.0

nvidia-videofx-filter.c(133,9): error C2220: the following warning is
treated as an error
nvidia-videofx-filter.c(133,9): warning C5287: operands are different
enum types 'nvvfx_fx_id' and 'nvvfx_filter_id'; use an explicit cast to
silence this warning

The warning is reasonable, so change mismatched enum type.

(cherry picked from commit a1c6bae601)
2025-06-27 17:02:20 -04:00
jeieaandRyan Foster 6811012e8b win-capture: Fix warnings with Visual Studio 2022 17.14
Following error occurs with Visual Studio 2022 v17.14 Preview 4.0 and
Windows 11 SDK 10.0.26100.0.

duplicator-monitor-capture.c(766,35): error C2220: the following warning
is treated as an error
duplicator-monitor-capture.c(766,35): warning C5287: operands are
different enum types
'window_capture_method' and 'display_capture_method'; use an explicit
cast to silence this warning

The warning is reasonable, so change mismatched enum type.

(cherry picked from commit 55673966cf)
2025-06-27 17:02:20 -04:00
jcmandRyan Foster 5aef1fb9eb mac-capture: Fix incorrect enum comparison
(cherry picked from commit 506281e3f6)
2025-06-27 16:37:10 -04:00
stephematicianandRyan Foster debf39723b linux-v4l2: Fix virtual camera start failure
Add function that tries to reset v4l2loopback output for module versions
from 0.12.5 to 0.12.7. If successful, then set flag that STREAMON and
STREAMOFF are necessary each time the device is opened/closed.

(cherry picked from commit 12c6febae2)
2025-06-27 16:37:10 -04:00
Ryan Foster 9d07e5c9e8 obs-websocket: Update version to 5.5.6
Fix a possible crash when opening OBS in Studio Mode.

(cherry picked from commit b96607345a)
2025-03-25 18:01:07 -04:00
Lukáš JechandRyan Foster bf0d9773b3 rtmp-services: Add "VRCDN - Live" service
(cherry picked from commit 01d5198f7b)
2025-03-25 18:01:07 -04:00
duyquach-castrandRyan Foster d20d2863ff rtmp-services: Update Castr.io ingests
(cherry picked from commit 291adefb4d)
2025-03-25 18:01:07 -04:00
Service CheckerandRyan Foster e9c87a8d7c rtmp-services: Remove defunct servers/services
(cherry picked from commit 1673cce921)
2025-03-25 18:01:07 -04:00
jcmandRyan Foster 96b9166815 mac-avcapture: Clear memory when creating frame struct
(cherry picked from commit 68c4617927)
2025-03-25 18:01:07 -04:00
Ryan Foster 4fe86d626a obs-browser: Update version to 2.24.6
46adc4b - Check source validity before attempting to log renderer crash
ac34d8e - Don't loop Cef exit while shutting down if task post fails
b56fd78 - Update version to 2.24.6

(cherry picked from commit 95cea5487b)
2025-03-25 18:01:07 -04:00
pkvandRyan Foster 3bebf2d67f nv-filters: Silence initial load error for Blur
On initial run of the Blur filter, some parameters are not all set when
there is the first call to load the effect. This is actually not an
issue, so the log is now silenced at this time.

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit f6f5c7bb25)
2025-03-25 18:01:07 -04:00
pkvandRyan Foster 856c914fd6 nv-filters: Remove reset signal for Video effects
The reset signal was triggered whenever there was an update in the
parent source. This destroys the effect and recreates it, which can be
resource heavy.
We now let the SDK handle the source update on its own rather than
manually resetting the effect on obs side.

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit cc452e5acd)
2025-03-25 18:01:07 -04:00
pkvandRyan Foster 347d67d3c6 nv-filters: Fix CudaStream used in Video effects
During the mapping and unmapping of resources, the CudaStream was not
always consistent.
This fixes the issue.
Thanks to Stephan from NVIDIA Dev support for noticing the mismatch.

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit 3402f6c7d0)
2025-03-25 18:01:07 -04:00
pkvandRyan Foster 81d21a1f1b nv-filters: Reallocate state when resetting AIGS filters
This properly allocates the temporal state variable used in AI
greenscreen effect, when the latter is reset.

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit b5d0054cfa)
2025-03-25 18:01:07 -04:00
pkvandRyan Foster 83c245d786 nv-filters: Fix destruction of Background Blur effect
For the background blur effect, it was found that destroying it and
then adding any other NVIDIA effect led to a blank picture.
This commit swaps the order of destroying the effect and the associated
cudaStream.
For other effects the order does not matter; I have no idea why the
order matters for blur effect and the SDK gives no indication about any
proper order at destruction time.

Fixes bug #11383.
Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit 2682ccc33c)
2025-03-25 18:01:07 -04:00
pkvandRyan Foster 255801816a nv-filters: Set max effective threshold to 0.95 for Background removal
The threshold THR in Background removal filter has the following effect:
- if alpha if between [THR - 0.1; THR], alpha is interpolated;
- if alpha >= THR, alpha is set to 1.0;
- if alpha <= THR - 0.1, alpha is set to 0.
It was introduced in order to smooth the alpha at the edges of the
foreground.
This works fine unless THR == 1, where there can be bulk pixels with
alpha which will be interpolated as if they were at the edge;
in order to ensure that a bulk area with alpha set to 1.0 is well
defined, the max threshold is now set to 0.95 (so if the user picks a
unity threshold, a value of 0.95 will actually be used).
This fixes a bug in third party plugins which rely on a bulk foreground
safely set at alpha == 1.0. [1]

[1] https://github.com/FiniteSingularity/obs-stroke-glow-shadow/issues/61

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit ff51280ecb)
2025-03-25 18:01:07 -04:00
BoandRyan Foster 7cb45aa3f1 obs-nvenc: Fix incorrect CUDA array size allocation
Fix cuda array use 2 bytes per element instead of 4 bytes with P010 format.

(cherry picked from commit ecb99e3b34)
2025-03-25 18:01:07 -04:00
prgmitchellandRyan Foster 7e7c8f4abd win-capture: Add FragPunk to compatibility list
(cherry picked from commit b64f549ec9)
2025-03-25 18:01:07 -04:00
Ryan Foster 80d0dd987d rtmp-services: Remove unresponsive servers
These servers are unresponsive and are causing our nightly service
checks to fail. We do not know if these servers are intentionally
unreachable, but I do not want our nightly CI runs to keep failing, so I
am removing them unless we are informed they are working.

(cherry picked from commit 6f115df3af)
2025-03-25 18:01:07 -04:00
jcmandRyan Foster 2b6bacd6f5 mac-avcapture: Prevent race condition in source init/deinit
(cherry picked from commit 4fd671ee89)
2025-03-07 15:56:35 -05:00
Ryan Foster c4c2b77741 win-dshow: Fix possible crash if frame width or height is zero
If a frame has a width or height of zero, this value will make it into
libobs/media-io/video-frame.c:video_frame_init and cause linesizes or
heights to be zero, which will result in a bmalloc(0) call and OBS will
crash.

Instead of letting the call stack get that far, check the frame width
and height here at the source, log an error, and return early if the
frame width or height are zero.

(cherry picked from commit 3437e2b082)
2025-03-07 15:56:35 -05:00
Ryan Foster 2deb61b68a obs-browser: Update version to 2.24.5
082a0a2 - Don't emit a normal call to a function for closing panels
663dc38 - Disable modern game controller API on Windows
4023fad - Log fatal CEF crashes to file
52c1527 - Print browser source renderer crashes to OBS log
af0651b - Log error if CefInitialize fails
8223215 - Revert "Enable Qt message loop on Linux"
16ff0fa - Update version to 2.24.5

Additionally, update buildspec.json and build-aux/modules/99-cef.json to
use the new CEF builds. This is being done because the changes in
obs-browser specifically are meant to work with a CEF build compiled
with use_gtk=false.

(cherry picked from commit 3d9d066d07)
2025-03-07 15:56:35 -05:00
Ryan Foster d8e2431e30 obs-websocket: Update version to 5.5.5
(cherry picked from commit 50429bd2b0)
2025-03-07 15:56:35 -05:00
DeeDeeGandRyan Foster f134ea6bff obs-nvenc: Fix lookahead depth value logging
This was logging an intermediate value, rather than the final lookahead
depth value after all calculations. Log the final value instead.

(cherry picked from commit a8a349c805)
2025-03-07 15:56:35 -05:00
BleuzenandRyan Foster b1c06c7256 obs-nvenc: Correct max target quality for AV1
(cherry picked from commit 05c2f56853)
2025-03-07 15:56:35 -05:00
pkvandRyan Foster 7447d7a7ca nv-filters: Remove CUDA RT functions
We don't use CUDA RT functions anymore.
So this commit removes their loading from the CUDA RT DLL.
This also fixes a crash when loading different versions of CUDA RT when
the SDK is updated [1].

[1] https://github.com/obsproject/obs-studio/issues/11813

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit d1249cd993)
2025-03-07 15:56:35 -05:00
pkvandRyan Foster 146056d7a6 nv-filters: Update SDK version targeted
This updates checks against current SDK redist versions:
- 0.7.6 (Video Effects)
- 1.6.1.2 (Audio Effects)

Users will receive a warning if their redist versions are lower than
these.

Signed-off-by: pkv <pkv@obsproject.com>
(cherry picked from commit 417eddfc9d)
2025-03-07 15:56:35 -05:00
Translation UpdaterandTranslation Updater b7b7c4cbbc Update translations from Crowdin 2025-01-18 00:10:25 +00:00
derrodandRyan Foster b8c563cba7 image-source: Fix slideshow stopping on last file in random mode
(cherry picked from commit 41a38f742c)
2025-01-17 17:33:55 -05:00
derrodandRyan Foster c1c76a472f obs-nvenc: Abort encoder init if custom options are invalid
(cherry picked from commit 223015bd54)
2025-01-17 17:33:55 -05:00
derrodandRyan Foster 483c66c65e obs-nvenc: Fix translation string for 4:4:4 unsupported error
(cherry picked from commit 7a04980213)
2025-01-17 17:33:55 -05:00
pkvandRyan Foster 69a825b71b obs-filters: Maintain order of migrated NVAFX filters
This fixes a bug where the NVIDIA NVAFX filters are migrated but not
kept in their original order, with respect to other filters.

Signed-off-by: pkv <pkv@obsproject.com>
2024-12-10 14:34:48 -05:00
ChrisandGitHub e3b518d08f win-capture: Add The Bazaar to compatibility list (#11601) 2024-12-09 02:12:54 -06:00
Gol-D-AceandGitHub fbf2ea1a82 win-capture: Add Marvel Rivals to compatibility list (#11594) 2024-12-08 12:25:11 -06:00
Translation UpdaterandTranslation Updater 0b2c85845e Update translations from Crowdin 2024-12-06 23:21:55 +00:00
tytan652andRyan Foster dfc3a69c52 obs-ffmpeg: Avoid setting negative bitrate for lossless audio codec
Since FFmpeg 7.1 a check was added to disallow pre-initializing encoder
with a negative bitrate.

https://github.com/FFmpeg/FFmpeg/commit/74385dd496bdcda9a6e029fabf4946f2234a0d13
2024-11-20 13:27:38 -05:00
MarcoandRyan Foster 7722698c7c decklink: Fix string handling causing plugin to not function 2024-11-18 15:58:57 -05:00
confusionattackandLain 4652daf748 win-capture: Avoid NULL deref when capture not initialized 2024-11-16 11:32:10 -08:00
7979421cbf mac-capture: Don't read channels for disconnected audio device
Co-authored-by: PatTheMav <patthemav+github@gmail.com>
2024-11-08 13:14:34 -05:00
Ryan Foster b854f61a1d obs-qsv11: Remove checks for DX11
Since we currently only support DX11_D3D surfaces on Windows, we can
remove the checks for that flag and the flag itself.
2024-11-07 17:33:59 -05:00
Ryan Foster bce98b607a obs-qsv11: Remove old DX9 code
This code was left over from a previous cleanup. We currently only use
DX11_D3D surfaces on Windows.
2024-11-07 17:33:59 -05:00
Ryan Foster 110efc0125 obs-qsv11: Remove unused debug variable 2024-11-07 16:47:06 -05:00
Ryan Foster 3bcc40ab4c obs-qsv11: Move debug code into debug sections
The code that checked frame types was used by both the MSDK < 1.7 code
and by the debug code afterward that was conditionally enabled with a
preprocessor check. Since the frame type checks are no longer used by
user code, move it to the debug/dev code.
2024-11-07 16:47:06 -05:00
Ryan Foster d67f971756 obs-qsv11: Remove old MSDK 1.6 code
The old MSDK 1.6 code paths were for older devices which we no longer
support. Typically, version 1.0 is reported when QSV fails to
initialize. The lowest version that should be supported is 1.35, so we
should not need code that covers versions 1.0 to 1.6.
2024-11-07 16:47:06 -05:00
ExeldroandRyan Foster f08c9523e4 obs-filters: Move nvafx migration to queued task 2024-11-07 16:07:13 -05:00
Ryan Foster 24ea557087 obs-websocket: Update version to 5.5.4 2024-11-01 16:29:37 -04:00
Charlese2andRyan Foster 0b87f533b2 graphics-hook: Fix null pointer dereference
Multiple APIs may be set up to capture without being initialized in
graphics-hook when multiple threads are sending present calls. This just
prevents those invalid captures from completing.
2024-10-31 12:46:04 -04:00
Ed MasteandRyan Foster 038c91d823 librtmp: Use /etc/ssl/certs/ path on FreeBSD
All supported FreeBSD releases include a root certificate bundle in the
base system.  The path is the same as on Linux.
2024-10-30 15:01:46 -04:00
dimtpapandRyan Foster 7c523c495c linux-pipewire: Fix memory leaks 2024-10-29 15:47:19 -04:00
tytan652andRyan Foster 52a0486c4c cmake/plugins: Enable -Wswitch on GCC
This warning is already enabled for Clang which causes issue for things
that are usually built with MSVC or GCC (e.g. non-macOS plugins).

obs-nvenc switch warning is also fixed in this commit.
obs-qsv11 has switch warning set to not become errors.
2024-10-25 13:01:33 -04:00