Commit Graph
5135 Commits
Author SHA1 Message Date
pkv 7a25c3fd8b win-asio: Blacklist Yamaha Steinberg in Debug builds
The Yamaha Steinberg USB ASIO driver triggers an exception due to
mitigations enforced in Debug builds (cf obs-main.cpp,
set_process_mitigation_policies() ) when an invalid handle operation was
detected in the driver.
So we prevent its loading.
This commit can be reverted once Yamaha fixes its driver.

Signed-off-by: pkv <pkv@obsproject.com>
2026-11-03 11:57:41 -05:00
pkv f574117957 asio-output-ui: Support for new monitoring mixer
Due to circular buffer constraints, it is necessary to restart the
output when a channel changes its source from an obs regular track to
the new monitoring mix (or vice-versa).

Signed-off-by: pkv <pkv@obsproject.com>
2026-11-03 11:57:41 -05:00
pkv 78ee808479 win-asio: Add monitoring mix to output
This adds support for the new raw audio output callback
(raw_audio_monitoring) which provides mixed audio from all monitored
sources.

Signed-off-by: pkv <pkv@obsproject.com>
2026-11-03 11:57:41 -05:00
pkv f2939a64a1 asio-output-ui: Add ASIO output frontend plugin
This adds an ASIO output entry in Tools Menu allowing to setup audio
output from obs to an ASIO device.

Signed-off-by: pkv <pkv@obsproject.com>
2026-11-03 11:57:41 -05:00
pkv e8e04a20c9 win-asio: Add ASIO source & output
This adds:
- an ASIO Input source, allowing audio capture of devices using
Steinberg ASIO audio SDK on Windows. This allows low latency capture.
- an ASIO output, which will allow routing audio from OBS to any ASIO
device. A per channel routing is provided.
The UI to setup the ASIO output is provided in a later commit.

Signed-off-by: pkv <pkv@obsproject.com>
2026-11-03 11:57:41 -05:00
pkvandPatTheMav 82e549dfb5 obs-vst3: Add a VST3 host
This adds a VST3 host to obs-studio on Windows, macOS and Linux.
Only audio effects are enabled. Instruments and MIDI are not supported.
A maximum of 1 main bus, 1 sidechain input bus and 1 main output bus are
enabled.
Note that VST3 on linux only support X11. Although the SDK added Wayland
capability, it is too recent so there is yet no Wayland VST3 apart from
a demo from the SDK.
The cmake part was written by PatTheMav from obs dev team.

Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
Signed-off-by: pkv <pkv@obsproject.com>
2026-11-03 11:56:13 -05:00
Ryan Foster 1d4d119382 obs-browser: Update version to 2.27.5
obsproject/obs-browser@1cfae9e Initialize dock later to bypass startup crash
obsproject/obs-browser@4053278 Correctly set CEF log path on non-Windows platforms
obsproject/obs-browser@7962467 Queue navigation in browser dock to fix deadlock
obsproject/obs-browser@be39477 Resize panel container after context is created
obsproject/obs-browser@d4db73e Update version to 2.27.5
2026-10-28 16:54:58 -04:00
Dennis Sädtler 7fc60ea381 rtmp-services: Update Twitch/IVS Ingests
Replace legacy ingest URLs with current ones as the old ones may be
disabled in the future.
2026-10-22 10:31:39 -07:00
Ryan Foster 95d5223b66 obs-browser: Update version to 2.27.4
obsproject/obs-browser@23075aa Disable Chromium function to de-elevate main process
2026-10-20 17:15:49 -04:00
Ryan Foster f1c0a11644 obs-browser: Update version to 2.27.3
obsproject/obs-browser@6b6d456 Additional restrictions on custom scheme handler
obsproject/obs-browser@4d341a6 Fix handling of filepaths in migration
2026-10-16 18:05:42 -04:00
PatTheMav 1b38b75338 cmake: Fix regression when disabling core modules
To create a build system that only produces the core libraries required
for plugin development (libobs and obs-frontend-api), developers could
use the "ENABLE_PLUGINS" cache variable.

This variable was removed and replaced with "ENABLE_CORE_MODULES"
for the plugin manager feature, but disabling building of core modules
made it impossible to build libobs (as the required files were not
generated).

This commit adds temporary support for the deprecated "ENABLE_PLUGINS"
variable (with a deprecation warning) and also ensures that libobs can
be built successfully without any core modules enabled.
2026-10-16 15:12:08 -04:00
Service Checker 1ad6110186 rtmp-services: Remove defunct servers/services 2026-10-14 19:58:57 -04:00
Joel Bethke b92a28ffdf win-dshow: Update virtualcam installer scripts
Remove the registry key check for the virtual camera module installer.
The regsvr32 will perform this check itself, so we don't need to if the
registration is already present. However, if we want to update the path,
simply checking that the key exists will prevent us from being able to
update the path in the future, and as necessary for OBS v33+. This also
corrects the incorrect file paths to the modules in the new core plugin
structure.
2026-10-14 13:46:43 -04:00
Ryan Foster 7d98bebe11 obs-websocket: Update version to 5.7.6
Changes:
 - Update translations from Crowdin
2026-10-08 16:03:49 -04:00
Ryan Foster 3ac7ff8cc0 obs-browser: Update version to 2.27.2
obsproject/obs-browser@058c30f Temporarily recreate implied Localhost permissions
2026-10-08 14:21:11 -04:00
Matt Gajownik e7f0b0d43c Update translations from Crowdin 2026-10-07 22:04:29 -04:00
Ryan Foster 39c2de975b obs-browser: Update version to 2.27.1
Fixed:
 * Fixed audio monitoring on browser sources briefly being enabled
 * Fixed browser sources appearing blank on refresh

obsproject/obs-browser@9124be1 Update translations from Crowdin
obsproject/obs-browser@ae92c43 Don't override error page for an aborted page load
obsproject/obs-browser@810c52e Clear page rather than redirect on failed page load
obsproject/obs-browser@de7e68f Restore audio mute on navigation
obsproject/obs-browser@24b5c8d CI: Update clang-format to 22.1.3
obsproject/obs-browser@5b50328 clang-format: Format files
obsproject/obs-browser@8349dee CI: Update and pin actions/checkout to v7.0.1
obsproject/obs-browser@a82b017 cmake: Update require CMake version to match obs-studio
obsproject/obs-browser@d7260a6 cmake: Format with gersemi 0.25.0
obsproject/obs-browser@1e313ae Update version to 2.27.1
2026-10-07 19:25:57 -04:00
Ryan Foster cffa83ba55 obs-websocket: Update version to 5.7.5
Changes:
 - forms: Remove Qt<6.10 code
 - base: Don't start WebSocket server in Safe Mode
2026-10-02 18:23:43 -04:00
Ryan Foster ff5c7fc5d6 linux-v4l2: Remove support for FFmpeg<8.0
Remove compatibility code for FFmpeg<8.0 that targets:
* libavcodec < 62
2026-10-02 15:52:04 -04:00
Ryan Foster a677505514 obs-ffmpeg: Remove support for FFmpeg<8.0
Remove compatibility code for FFmpeg<8.0 that targets:
* libavcodec < 62
* libavformat < 62
2026-10-02 15:52:04 -04:00
Ryan Foster 4b7854b920 win-dshow Set minimum FFmpeg version to 8.0 2026-10-02 15:52:04 -04:00
Alfred Wingate a93fae1cce decklink: Include previously implicit header for Linux
Libcxx-23 is removing transitive includes. This caused build failures
related to headers that were already included for Windows. Just
inherit them unconditionally.

See-Also: https://discourse.llvm.org/t/rfc-remove-unused-transitive-includes-from-the-libc-headers/90157
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2026-10-02 15:25:30 -04:00
Ryan Foster 6377af46bb frontend-tools: Update clock Lua script for new gs_image_file_ex
Follow-up to c3046ec172.

That commit completely replaced the various gs_image_file* structs and
functions, but this script was not updated. Use the new structs and
functions to fix the script.
2026-10-01 18:00:12 -04:00
Warchamp7 ef5814431c win-capture: Fix data directory path 2026-10-01 17:37:35 -04:00
FiniteSingularity 851826340f frontend-tools: Turn off scripting in Safe Mode
This commit modifies the frontend-tools core module to disable scripting
when OBS is launched in Safe Mode. With the new plugin manager, the
frontend-tools module is loaded even in Safe Mode, but since scripts are
potentially unsafe, this commit checks at plugin load and disables
scripting if Safe Mode is active. The rest of the module will still
function properly.
2026-09-24 12:56:57 -04:00
FiniteSingularityandPatTheMav 4ab64d00d0 cmake: Change name of core module output directory
Moves first-party runtime modules into the "core" directory rather than
the "obs-plugins" directory to better differentiate them from legacy
plugins as well as existing 3rd-party plugins.

This change also requires the existing plugin directory to be explicitly
added as a possible module search path by application logic, as libobs's
internal logic will not add this path anymore and thus third-party
plugins would not be discovered anymore.

Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2026-09-23 18:53:19 -04:00
FiniteSingularityandPatTheMav cca82c7156 cmake: Add concept of "core" modules
Core modules are main OBS Studio functionality implemented as runtime
modules, but are conceptually considered mandatory and the application
is incomplete without them.

This change also introduces a configure-time dependency of core modules
on "libobs" (already a generation-time dependency) and produces a
library target with the names of all core modules available at build
system generation.

Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2026-09-23 18:53:19 -04:00
FiniteSingularityandPatTheMav db8d9071b2 cmake: Add explicit target_enable function
This provides the counterpart to the existing "target_disable" function,
which also allows the functionality to be factored out of existing
helper code that might run this implicitly.

Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2026-09-23 18:53:19 -04:00
tt2468 1c315c33f8 rtmp-services: Update IRLToolkit ingest list
- `ewr` is now `iad`
- Added `ord` and `icn`
2026-09-23 15:41:31 -04:00
Ramjivan Jangid 978fc690d8 rtmp-services: Update Streamway primary ingest
Update Streamway's primary ingest endpoint to secure RTMPS.
2026-09-23 14:47:42 -04:00
rch850 d654632c0f rtmp-services: Update Whowatch
Use Amazon IVS Realtime RTMP Ingest
2026-09-22 17:07:09 -04:00
R0teandRyan Foster 0820d804bc linux-alsa: Fix use-after-free crash when USB mic not plugged in
Co-authored-by: Ryan Foster <ryan@obsproject.com>
2026-09-22 15:02:52 -04:00
Myeong Gyu Lee ea7536c49c rtmp-services: Add multitrack_video option to PandaTV | 팬더티비 Service 2026-09-21 19:13:24 -04:00
tom b31833b1ae rtmp-services: Add Spoon RTMP service 2026-09-21 17:18:01 -04:00
Matt Gajownik cba17c1d81 obs-browser: Update to 2.27.0
obsproject/obs-browser@5d2aadb Update to C++20
obsproject/obs-browser@d7065f9 cmake: Update Info.plist generation for macOS
obsproject/obs-browser@bb9b32e Enable support for CEF 6613+ and Chrome Runtime
obsproject/obs-browser@77bad77 Use constexpr for disabled command line features
obsproject/obs-browser@1d24808 Disable global shortcuts portal integration
obsproject/obs-browser@f555da0 Update version to 2.27.0
obsproject/obs-browser@a162443 Allow WebSocket requests over the network
2026-09-17 13:05:56 -04:00
pkv 0e742b3ad7 nv-filters: Remove CUDA from audio loader
CUDA is no longer used in Audio FX, so we remove everything related to
it in the nvafx loader.

Signed-off-by: pkv <pkv@obsproject.com>
2026-09-10 14:12:37 -04:00
pkv 06e3fbcf73 nv-filters: Enable Video FX SDK 1.3.0 for ARM
This updates the video FX SDK to 1.3.0, which enables arm64 support.
Backwards compatibility with SDK 0.7.6 has been kept.

Signed-off-by: pkv <pkv@obsproject.com>
2026-09-10 14:12:37 -04:00
pkv 9a91114907 nv-filters: Do not display VAD for dereverb
Voice Activated Detection (VAD) does not work with the room echo removal
(dereverb) FX.
So we remove it from Properties.

Signed-off-by: pkv <pkv@obsproject.com>
2026-09-10 14:12:37 -04:00
pkv 250dd2ab47 nv-filters: Enable audio FX SDK 3.0.0 for ARM
SDK 3.0.0 brings compatibility with arm64. The DLL loading sequence has
been adjusted since the FX are now loaded in their own child DLL.
The DLL loader has been also cleaned up by removing unused symbols. This
allowed us to dodge a few ABI breaks from NVIDIA...

Signed-off-by: pkv <pkv@obsproject.com>
2026-09-10 14:12:37 -04:00
Service Checker ed9b3cc19f rtmp-services: Remove defunct servers/services 2026-09-09 18:11:27 -04:00
tytan652 6b3e550729 cmake: Remove MbedTLS custom finder
The CMake package provided by upstream was preferred but macOS build
were without it until recently.
2026-09-04 16:59:23 -04:00
Gol-D-Ace 42ea39628c win-capture: Add Roblox window class auto switch to WGC mode 2026-09-02 12:54:43 -04:00
kangunnie_soop a2400fe980 rtmp-services: Update SOOP ingests
- Update streaming URL
- Consolidate SOOP Korea and SOOP Global service entries
2026-09-01 22:48:27 -04:00
Penwywern eee6a81ddc frontend: Register the replay buffer save hotkey in the frontend
Existing registering of the save hotkey in obs-ffmpeg makes it
impossible for it to trigger a frontend event, and is inconsistent with
other existing output hotkeys.

This registers the save hotkey in the frontend and removes the
registration in obs-ffmpeg, and adds a "due to hotkey" log message,
like other output hotkeys.
2026-09-01 15:44:00 -04:00
Penwywern d1244016fc obs-ffmpeg: Add replay buffer saving output signal 2026-09-01 15:44:00 -04:00
Ryan Foster 291298ed08 obs-nvenc: Enable NVENC on Arm64 2026-09-01 12:59:03 -04:00
Pablo bcd53e2914 win-capture: Add Construct 3 window class to WGC match
Construct 3 games register a top-level window class named
"WindowsWebview2Wrapper" which does not contain "Chrome" or "Mozilla",
causing OBS automatic mode to use BitBlt instead of WGC, which results
in a black screen for Construct 3 games.

Add "WindowsWebview2Wrapper" to wgc_whole_match_classes and add
compatibility entries for window capture BitBlt and game capture
warnings.

Closes #13359
2026-08-24 16:16:27 -04:00
Warchamp7 646836a311 libobs, frontend: Deprecate source monitoring_type 2026-08-24 14:55:40 -04:00
Alex Luccisano 0969e43a83 obs-ffmpeg: Fix B-frame offset calculation in AMF
AVC and AV1 encoders in AMF that support B-frames were incrementing
`dts_offset` even when B-frames were set to 0. For AVC, adjust the
`dts_offset` only when B-frames are supported and are greater than 0,
and clamp to maximum supported.

For AV1, remove the dts_offset code completely because it is being
ignored anyway. AV1 handles B-frames and offsets differently; refer
to [1] for details.

[1]: https://github.com/obsproject/obs-studio/pull/10996
2026-08-24 14:22:25 -04:00
Kira-NT 7e22ed2d48 win-capture: Improve fullscreen window detection
It's not that uncommon for apps on Windows to use a hacky method of
extending their windows 1-2px past the supported monitor resolution
to preserve "true" windowed fullscreen and circumvent some exclusive
fullscreen-related issues presented by their graphics library,
Windows itself, or both.

Therefore, the fullscreen detection technique has been relaxed
to properly identify windows slightly larger than the monitor's
viewport as fullscreen.

Windows also does something similar, evident by the fact that
the taskbar disappears, as it always does for fullscreen windows,
even when a window stretches slightly beyond the defined viewport.
2026-08-22 16:02:45 -04:00