Commit Graph

15221 Commits

Author SHA1 Message Date
Richard Stanway
efca325c2c frontend, plugins: Set default bitrate to 6000 kbps
The default of 2500 kbps was chosen 10 years ago and times have changed.
Logs and forums posts show that many users of OBS for recording don't
change their bitrate and end up with a 2.5 mbps recording which looks
terrible.

Now that service bitrate enforcement exists, this will be automatically
capped to the maximum bitrate for streaming services, so the only time
this should result in a problem is if the user's upload speed is the
limiting factor, hopefully rarer these days with increasing internet
speeds.
2025-09-17 19:56:04 -04:00
Ryan Foster
1e281538a4 libobs: Raise out of memory exception manually when out of memory
The previous attempt to clarify an out of memory exception/crash
resulted in the compiler optimizing os_breakpoint() and os_oom() into
the same result, which meant that crash stacks in the wild were still
not specific enough to be helpful. Forcefully differentiating the
functions in Release configuration by having os_breakpoint() only call
__debugbreak() and having os_oom() call RaiseException() should give us
clearer crash stacks.

Amends 94a736f179.
2025-09-17 16:29:06 -04:00
Ryan Foster
fd17570221 obs-websocket: Update version to 5.6.3
Changes:
- Updated translations

Bug Fixes:
- Fixed obs_frontend_get_global_config() deprecation warning
2025-09-17 15:56:59 -04:00
Ryan Foster
134289ca9e obs-browser: Update version to 2.26.1
Updated translations.
2025-09-17 15:56:59 -04:00
Joel Bethke
c4cccf7b7e frontend: Remove help text for shutdown check 2025-09-16 18:02:25 -04:00
Service Checker
bbd97ebbcf rtmp-services: Remove defunct servers/services 2025-09-15 20:25:59 -04:00
Norihiro Kamae
4d42b88960 frontend/api: Remove obs_frontend_get_global_config from internal code 2025-09-15 17:17:55 -04:00
Penwywern
e216a0eab0 frontend: Don't attempt multitrack without config url 2025-09-15 16:47:44 -04:00
Warchamp7
a9226f81d9 frontend: Fix UI deadlock
There is a Qt bug introduced around Qt 6.8.3 that causes the application
to hang when double clicking the sources list and the Windows setting
'Snap mouse to default button in dialog boxes' is enabled. Work around
this by using a timer if the setting is enabled.
2025-09-15 16:06:38 -04:00
Sebastian Beckmann
35c02e7bc2 docs: Clarify some aspects of OBS_PROPERTY_BUTTON
The important point here is that "data" from the callback isn't defined
by libobs, but rather by the API consumer.
Additionally, it's not entirely clear from the documentation whether the
callback would still be called for button of type OBS_BUTTON_URL. There
should be no negatives to always calling it and the OBS Studio frontend
already behaves that way, so let's document that in libobs.
2025-09-12 16:41:48 -04:00
derrod
2c65cb82ea frontend: Remove "BETA" from Hybrid MP4/MOV and make them the default 2025-09-12 15:45:57 -04:00
Sebastian Beckmann
b6555a4baa libobs: Treat os_dlopen failure as module load failure
Communicate that a module has failed to load via obs_module_failure_info
2025-09-12 15:16:06 -04:00
Sebastian Beckmann
a4b62d26be libobs: Differentiate between plugin load failures
It's important to differentiate whether a plugin fails to open (dl_open
returning NULL, being compiled for a newer libobs, etc) or whether it
opened correctly, but failed to initialize (returned NULL during
obs_module_load()).
With that, we can also create disabled modules for modules that fail to
open, which in the future should enable better user communication in the
UI (besides the module_load_failure_info).
2025-09-12 15:16:06 -04:00
Sebastian Beckmann
fd214a9c6e libobs: Rename MODULE_FILE_NOT_FOUND code to MODULE_FAILED_TO_OPEN
This code is returned if os_dlopen returns NULL. This can happen for
multiple reasons, not just because the file can't be found. Since [1]
other causes are getting more common, but this could also happen before.

[1]: 62429135ba
2025-09-12 15:16:06 -04:00
Warchamp7
9a3fe95211 frontend: Update Plugin Manager v1 UI 2025-09-12 14:18:27 -04:00
Norihiro Kamae
139fd801ee libobs/util: Fix memory leak at failure condition 2025-09-12 13:46:58 -04:00
Matt Gajownik
99c3a4b797 Update translations from Crowdin 2025-09-08 22:38:40 -04:00
Sebastian Beckmann
482778d532 frontend: Change renderer combo box to use custom data
While the Metal renderer is displayed as "Metal (Experimental)", the
"Experimental" part doesn't need to be stored to the config. Otherwise,
anyone having selected the Metal renderer will have it get unselected
once the "Experimental" part is removed, and presumably the people who
have it selected while it's experimental would also be the people who
would want it once it's stable.
2025-09-08 17:39:38 -04:00
Ryan Foster
21f2d97af8 Reapply "cmake: Use fixed SOVERSION everywhere"
This reverts commit 551f203499.
2025-09-08 17:09:00 -04:00
Ryan Foster
128b767a2f Reapply "cmake: Avoid breaking ABI through major version bump on Linux"
This reverts commit e0aa7c2943.
2025-09-08 17:09:00 -04:00
Ryan Foster
70d03a119d Revert "cmake: Remove library compat symlink on Linux"
This reverts commit 9b2662117a.
2025-09-08 17:09:00 -04:00
Amin.MasterkinG
4d4fb003db rtmp-services: Update MasterStream.iR ingest 2025-09-08 15:55:58 -04:00
PatTheMav
ee212e863d libobs-metal: Added README file for current state of implementation 32.0.0-beta2 2025-09-04 17:58:27 -04:00
PatTheMav
cb634b9875 libobs: Update default draw effect to also provide D65P3 conversion 2025-09-04 17:58:27 -04:00
PatTheMav
f932082112 frontend: Add Metal to available list of renderers in basic settings 2025-09-04 17:58:27 -04:00
PatTheMav
d8b19c3c25 libobs-metal: Add Metal renderer 2025-09-04 17:58:27 -04:00
PatTheMav
4ff872c9bb CI: Update macOS runner for building to use Xcode 16.4
The current version of swift-format uses features that are only
supported in more recent Swift compiler versions than the one shipped
with Xcode 16.1.0.
2025-09-04 17:58:27 -04:00
PatTheMav
4dab2c51b8 libobs: Add prerequisites for Metal and Swift support 2025-09-04 17:58:27 -04:00
PatTheMav
b0fa60ae17 cmake: Enable DEBUG flag for Swift 2025-09-04 17:58:27 -04:00
PatTheMav
cdac426843 CI: Update swift-format configuration with more explicit rules 2025-09-04 17:58:27 -04:00
Ryan Foster
3afc2577d3 libobs: Remove Qt5 module check
Partial revert of a0eae6f33c.
Partial revert of 23c3ad4d02.
Partial revert of 97b34ebb76.

Keep all of the get_plugin_info stuff, remove the Qt5 checks.
2025-09-04 16:57:07 -04:00
Ryan Foster
2004ea6b16 Revert "libobs/util: Reject plugins linking Qt5 library for Linux"
This reverts commit 615728fa3b.

Includes partial revert of 62429135ba.
2025-09-04 16:57:07 -04:00
Ryan Foster
f31485939c Revert "libobs: Assume Qt 6, always warn about Qt 5 plugins"
This reverts commit 5ed0b8a0b8.
2025-09-04 16:57:07 -04:00
Ryan Foster
a7b5aef36a Revert "libobs/util: Prevent locking mutex in child process when checking Qt5"
This reverts commit 5c448452cf.
2025-09-04 16:57:07 -04:00
tytan652
9b2662117a cmake: Remove library compat symlink on Linux 2025-09-04 16:29:17 -04:00
tytan652
e0aa7c2943 Revert "cmake: Avoid breaking ABI through major version bump on Linux"
This reverts commit 129d4f2f3f.
2025-09-04 16:29:17 -04:00
tytan652
551f203499 Revert "cmake: Use fixed SOVERSION everywhere"
This reverts commit cc36ccd07d.
2025-09-04 16:29:17 -04:00
Sebastian Beckmann
11b9f1aa83 libobs: Re-include groups in obs_enum_scenes
[1] changes this condition to obs_source_is_scene as a drive-by, however
they aren't equivalent. obs_source_is_scene checks whether the source's
is is "scene", which doesn't include groups, while OBS_SOURCE_TYPE_SCENE
does. Suddenly not including groups is quite the API break.
This now means obs_canvas_enum_scenes does also include groups, however
that is much less of an egregious API change.

[1]: 8c5858ae05
2025-09-04 16:11:19 -04:00
tytan652
480f514abb CI,build-aux: Use rebuilt CEF on Linux and macOS
- Linux has backports to fix stack smash and TLS issues
- macOS has structure changes to work with Xcode 26
2025-09-04 15:14:46 -04:00
Sebastian Beckmann
e4381755ca frontend/data: Remove unused context bar string 2025-09-04 14:48:30 -04:00
Sebastian Beckmann
a9a506e984 shared/idian: Make checked status of collapsible rows public 2025-09-04 14:17:02 -04:00
Sebastian Beckmann
22ce393680 shared/idian: Make title and description common to all row types 2025-09-04 14:17:02 -04:00
Sebastian Beckmann
795988bd69 shared/idian: Pass "this" instead of "=" to lambda
This is more correct, and compatible with C++20.
2025-09-04 14:17:02 -04:00
Sebastian Beckmann
fca07b4ce4 frontend: Include OBSIdianPlayground MOC
Also puts the include in the correct place in OBSBasic_MainControls.
2025-09-04 14:17:02 -04:00
Sebastian Beckmann
e05496462a frontend/themes: Remove Idian test rule 2025-09-04 14:17:02 -04:00
Service Checker
1eb6bdee59 rtmp-services: Remove defunct servers/services 2025-09-03 20:47:36 -04:00
pkv
e33eab7f2a nv-filters: Guard function introduced in sdk >= 1.6.0
I forgot to guard NvAFX_UninitializeLogger() called in Destroy function.

Signed-off-by: pkv <pkv@obsproject.com>
2025-09-03 16:43:18 -04:00
Sebastian Beckmann
62429135ba libobs: Use RTLD_NOW to load modules
RTLD_LAZY means that symbols will only be resolved when first used,
while RTLD_NOW tries to resolve them immediately. This means that if
there are missing symbols (e.g, because a function got removed from
libobs), dlopen with RTLD_LAZY will happily open that module but we get
a runtime crash when the module tries to use that symbol, while with
RTLD_NOW we instead get a (nicer) error on dlopen.
2025-09-03 16:01:57 -04:00
Sebastian Beckmann
ac913b3854 libobs: Fix comment typo
verison -> version
As a drive-by, also changes null to NULL.
2025-09-03 15:34:26 -04:00
Sebastian Beckmann
affe09d250 frontend: Fix plugin manager module type loading 2025-09-03 15:34:26 -04:00