14656 Commits
Author SHA1 Message Date
Translation UpdaterandTranslation Updater 0b2c85845e Update translations from Crowdin 31.0.0 2024-12-06 23:21:55 +00:00
derrodandRyan Foster 10dc43b3cd libobs: Remove relative positioning functions
Revert "docs: Add new relative positioning scene functions"

This partially reverts commit 366cfdb963.

The addition of obs_sceneitem_(get/set)_info2 was not removed as that is
still valid.
2024-12-04 14:41:03 -05:00
derrodandRyan Foster e9c6105f99 libobs: Fix scale calculation when applying new group transform 2024-12-03 15:33:36 -05:00
PatTheMavandRyan Foster b285a849b9 UI: Fix collision of existing backup files for new scene collections
The new Scene Collection code uses the lazy creation behaviour of
OBSBasic::Load, which itself uses obs_data_create_from_json_file_safe.

The internal implementation will create a new scene collection with the
contents of an existing backup file with the same name however, thus
users would end up with a nominally "new" scene collection that
contains contents of an old backup.

This update will remove any existing backup file colliding with the
name of the new, duplicated, or renamed, scene collection and remove it
before activating it (and having OBSBasic::Load create a new one).
2024-12-03 15:09:11 -05:00
Ryan Foster c8e215be3d cmake: Fix build directory exclusion for real
Upon further review, the build directory is never set to build_$arch.
Currently, our CMake Presets on Ubuntu only use build_ubuntu. However,
we can attempt to be flexible here and simply exclude the build
directory configured in CMake.
2024-11-26 16:05:53 -05:00
testandRyan Foster e2cd815b84 UI: Add unassigned icon 2024-11-25 15:45:27 -05: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
31.0.0-rc1
2024-11-20 13:27:38 -05:00
PatTheMavandRyan Foster 7ffc38ebb6 UI: Fix broken module paths provided via environment on macOS
When custom module and module data paths are provided via environment
variables, the module paths generated by current code will not be
compatible with the plugin bundle structure used on macOS.

Using environment variables is a simple way to test plugins,
as this allows OBS to discover them from alternative user-provided
locations.
2024-11-20 13:01:15 -05:00
PenwywernandRyan Foster ca342c2491 frontend-tools: Correctly pass settings to modified cb on reload 2024-11-19 18:11:08 -05:00
Dennis SädtlerandRyan Foster b71f43980a UI: Fix falling back to non-multitrack output after error
This lambda would be called from the Qt event loop rather than the
original call stack when continuing from an error, resulting in the
captured references being invalid.
To solve this must explicitly use a copy instead of reference capture.
2024-11-19 16:55:52 -05:00
Dennis SädtlerandRyan Foster 1648dcc7f2 UI: Fix autoconfig saving signed stream key 2024-11-19 16:00:23 -05:00
Ruwen HahnandRyan Foster 4c1f783c66 UI: Forward auto rtmp/rtmps IVS preference
(cherry picked from commit ffa751696106761ddcf965d3f68e0d8920495a9b)
2024-11-18 17:12:45 -05:00
Ruwen HahnandRyan Foster a00595c2d7 UI: Ignore all auto URLs for server selection
(cherry picked from commit a36c1d4dd4b07e9b0aa66f286fe52f6f5a8d9e98)
2024-11-18 17:12:45 -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
Ryan Foster b5f4958eac cmake: Fix build directory exclusion
The regex was incorrectly excluding any file with build in the name. The
intent was to exclude any build directories, so we should be able to
restrict this.
2024-11-15 15:30:09 -05: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
shiina424andRyan Foster d7292a4f64 UI: Create YouTube Dock when switching profile 2024-11-05 14:42:06 -05:00
Ryan Foster 24ea557087 obs-websocket: Update version to 5.5.4 31.0.0-beta3 2024-11-01 16:29:37 -04:00
testandRyan Foster bb9399a948 UI: Add trash and general icon 2024-11-01 16:03:13 -04:00
testandRyan Foster c531c304b2 UI: Add trash icon 2024-11-01 16:03:13 -04:00
shiina424andRyan Foster 7dc0064292 UI/themes: Fix missing icon in system theme 2024-11-01 16:03:13 -04:00
shiina424andRyan Foster 5ccab9c65b UI/themes: Fix control button pressed color in Rachni theme 2024-11-01 15:31:11 -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
PatTheMavandRyan Foster bf00c17b2b UI: Update profile encoder information after module load
The function InitBasicConfigDefaults2's purpose is to set up encoder-
related settings for a profile, which requires all available encoders
to have been discovered first.

As encoders are added by runtime modules, this also means that discovery
needs to be delayed until after modules have been loaded, but modules
themselves require a valid profile to exist and be loaded.

This leads to the requirement of profiles needing to exist in a
half-initialized state when modules are loaded and only becoming
fully initialized after that.

This distinction is not necessary after the initial launch of obs-studio
because runtime plugins are not hot-loadable, so the update can happen
unconditionally at any time a plugin is changed, which implicitly
couples every call to ActivateProfile with a call to
UpdateProfileEncoders.
2024-10-30 16:18:29 -04:00
Matt GajownikandRyan Foster 0be9d9ff79 UI: Open active profile directory via File menu 2024-10-30 15:57:46 -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
SarenDevandRyan Foster 23e772cc2c UI/importers: Translate capture sources depending on WS
Translate window or game capture sources to xcomposite or pipewire
depending on the window system used.
This change prevents xcomposite being assigned on non-X11 systems
which causes a crash
2024-10-30 14:39:30 -04:00
Richard StanwayandRyan Foster ab48cd0b3d UI: Add TikTok Live Studio Virtual Camera to DLL blocklist
Ref: https://www.hanselman.com/blog/webcam-randomly-pausing-in-obs-discord-and-websites-lsvcam-and-tiktok-studio
2024-10-30 14:16:47 -04:00
PatTheMavandRyan Foster 1cf6b3d45e UI: Restore frontend API events being dispatched during initialization
The frontend API events "OBS_FRONTEND_EVENT_SCENE_CHANGED" and
"OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED" are not dispatched if
disableSaving has a value > 0. Prior code decremented disableSaving to
0 globally (regardless of whether saving was necessary, which is only
the case if a new collection is created as a fallback for a missing
scene collection).

Thus the updated code exhibits different event dispatch behavior then
old code which some plugins might have relied on. To avoid introducing
new behavior, explicitly create the environment to allow the dispatch
to take place and remove/refactor the events in a later version.
2024-10-30 13:46:36 -04:00
gxalphaandRyan Foster 23910f471f UI: Remove LineEditAutoResize widget
This widget was created primarily for the custom YouTube chat input and
used solely for that. With the custom YouTube input gone, it serves no
further purpose. If it's needed again in the future, it can be recreated
from the history.

Effectively reverts 5a298106bc.
2024-10-30 11:59:33 -04:00
gxalphaandRyan Foster de31ec80ae UI: Remove SendChatMessage from YoutubeApiWrappers
With the custom YouTube chat sending removed in the parent commit,
there's no need to keep these functions anymore.

Effectively reverts 49dfc113c1.
2024-10-30 11:59:33 -04:00
gxalphaandRyan Foster 4730292394 UI: Remove custom YouTube chat input
The custom chat was originally introduced as a workaround because the
ability to chat was always missing due to limitations on YouTube's side.
With the introduction of first-party YouTube chat features in
9b8fa0f0ca, it only has the limited use
case when the user is logged in via the API (in OBS settings), but isn't
logged in in the integration docks. As it's quite a bit of code for not
a lot of value, I think it's worth removing. Users should log in via the
panel instead.

Effectively reverts 3513c78be2.
2024-10-30 11:59:33 -04:00
dimtpapandRyan Foster 7c523c495c linux-pipewire: Fix memory leaks 2024-10-29 15:47:19 -04:00
Charlie LiandRyan Foster 7e1e60cece cmake: Install desktop files and icons on FreeBSD 2024-10-29 15:20:20 -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
Matt GajownikandRyan Foster 0eef4e25ee UI: Split out Whats New dialog, fix crash on shutdown
CEF crashes on shutdown if any browser window remains open during the
shutdown flow. Reproducible 100% of the time on Linux with What's New.
The previous implementation of the What's New dialog correctly deleted
all the Qt widgets, but the CEF internal event flow would only call the
"preparing to close" function, and never the "window safely closed"
function. Moving the code (practically unchanged) to a custom QDialog
solves the problem entirely, and is more consistent with other uses.
2024-10-24 16:01:46 -04:00
tytan652andRyan Foster 2e075f7513 cmake: Fix target_add_resource ARGN support on Linux
This fixes how the AUTHORS file is installed.
2024-10-24 15:08:37 -04:00
derrodandRyan Foster 3ee7655fe4 UI: Log Twitch 403 error bodies 2024-10-23 12:51:56 -04:00
Matt Gajownik 9908c7941f UI: Don't load Restream UI before CEF is ready 2024-10-23 17:33:18 +11:00
Ed MasteandRyan Foster d9b1b8213a CI: Enable WebRTC on FreeBSD
Install www/libdatachannel and leave ENABLE_WEBRTC at the default of ON.
2024-10-22 16:11:08 -04:00
tytan652andRyan Foster 03bc6d7cb4 build-aux: Remove CEF stripping workaround
This cause issues in Flatpak IDE like GNOME Builder.
2024-10-22 15:08:10 -04:00
derrodandRyan Foster e8968ba715 obs-nvenc: Force at least 4 b-frames when using UHQ tune 31.0.0-beta2 2024-10-21 12:18:05 -04:00
PatTheMavandRyan Foster 072102701c UI: Use custom property on QAction to retain profile or collection name
On some platforms (e.g. KDE) accelerators are automatically added to
the text properties of QActions, thus changing the value returned by
text().

Thus we cannot rely on the text to always represent the same text that
we set originally and have to explicitly store and retrieve the value
as a property.

Coincidentally this not only fixes possible issues on other platforms,
but is also architecturally more correct.
2024-10-21 11:51:33 -04:00