Commit Graph

14539 Commits

Author SHA1 Message Date
Dennis Sädtler a0edc5e8bc libobs: Do not allow reconnect if stop code is OBS_OUTPUT_INVALID_STREAM 2024-09-26 15:14:26 -04:00
PatTheMav 32cfa1626f UI: Fix missing support for portable configuration files
Windows and Linux allow the storage of configuration files relative
to the binary location, which is enabled by default on Windows and has
to be explicitly enabled on Linux.

This was originally conflated with the LINUX_PORTABLE build setting
which also allowed the application itself to be run from non-default
locations on a Linux system.

This change reintroduces the functionality behind the
ENABLE_PORTABLE_CONFIG build setting on Linux.

It also adds necessary code to make this setting compatible with the
recently introduced relocatable settings code changes:

When portable mode is enabled, user configuration, scene collections,
and profiles are stored in the config directory created for portable
mode.
2024-09-26 14:39:44 -04:00
PatTheMav 51d66dcedf cmake: Change library discovery order in LuaJIT find module
To ensure that the find module prefers the variant of LuaJIT shipped
as part of obs-deps, it's necessary to give the name as shipped in
obs-deps the highest precedence.

This ensures that the "find_library" call will discover the less
version-specific variant of the library possibly installed via
Homebrew.
2024-09-26 14:14:55 -04:00
PatTheMav ace60a655c cmake: Disable discovery of Homebrew libraries for dependencies
macOS builds should only use dependencies built via the obs-deps
build scripts. Default variants of the same dependencies are not
compatible with our app packaging requirements and thus will create
issues when creating the app bundle.

This is specifically an issue when MbedTLS is installed via Homebrew
which ships a CMake package config by default and is picked up
by our code ever since we switched to prefer CMake packages.
2024-09-26 14:14:55 -04:00
Service Checker 8cacec92f5 rtmp-services: Remove defunct servers/services 2024-09-26 13:52:42 -04:00
Ryan Foster f75a6dd247 CI: Update deps to 2024-09-12 release
Notable changes:
 * deps.qt: Revert Qt from 6.7.2 to 6.6.3 on macOS
 * deps.qt: Revert Qt from 6.7.2 to 6.6.3 on Windows
2024-09-26 13:14:53 -04:00
Norihiro Kamae 06642fdee4 UI: Fix low value of std::clamp gets greater than high value
`std::clamp` was introduced at 60a45d3aa3 but it caused a runtime
assertion failure on Windows that checks the low value of `std::clamp`
is not greater than the high value.
2024-09-18 17:15:02 -04:00
gxalpha 612ef65726 CI: Set default values for have* outputs in macos-codesigning action
The "provisioning" and "notarization" steps that set the
"haveProvisioningProfile" and "haveNotarizationUser" outputs
respectively only run if "haveCodesignIdent" has evaluated to true in
the prior "codesign" step.
This means that if "haveCodesignIdent" is false, the other two outputs
are left unset, evaluating their "value" expressions (and as such the
output of the action) to empty instead of false.

This issue was found in the equivalent action in obs-plugintemplate. As
that action is basically a mirror from the obs-studio action, let's fix
it here too.
2024-09-18 16:49:54 -04:00
PatTheMav 5779b52d92 UI: Fix config class mismatch in OBSApp class 2024-09-18 16:29:01 -04:00
PatTheMav aa10a7b46a CI: Extend condition check for language file upload 2024-09-18 16:08:38 -04:00
PatTheMav c2ea78c31f CI: Update build script for Ubuntu to require Ubuntu 24.04
Also defaults to Qt6 and x86_64 builds, thus no toolchain file is
needed and no additional data in buildspec is needed either.
2024-09-18 16:08:38 -04:00
PatTheMav 51f24cb82a CI: Remove experimental aarch64 support in build script 2024-09-18 16:08:38 -04:00
PatTheMav fd63da92ee CI: Update build and package scripts to require Zsh 5.9 2024-09-18 16:08:38 -04:00
PatTheMav 5243783d1b CI: Update qt-xml-validator action to use check-changes action 2024-09-18 16:08:38 -04:00
PatTheMav 2bffc6b1ff CI: Update build-project workflow to use Xcode 15.4 for macOS builds 2024-09-18 16:08:38 -04:00
PatTheMav df75840fdb CI: Update wrangler-action action 2024-09-18 16:08:38 -04:00
PatTheMav 731be3ef44 CI: Update sphinx-publish-actions action 2024-09-18 16:08:38 -04:00
PatTheMav 27417d3698 CI: Add documentation to XSLT files for Sparkle Appcast action 2024-09-18 16:08:38 -04:00
PatTheMav 2084ac0a17 CI: Add documentation to complex shell script constructs 2024-09-18 16:08:38 -04:00
PatTheMav 2d95d8b98c CI: Remove Ccache restoration for Windows builds
Once upon a time there was the idea to enable use of Ccache for
Windows builds on CI as well, but to achieve this the project would
need to switch to clang-cl.exe as its compiler and use an additional
post-build step to generate PDBs from binaries.

Using a different compiler for continuous integration than for building
release builds defeats the purpose of CI however, so the idea was
dropped.
2024-09-18 16:08:38 -04:00
PatTheMav ae90534e2e CI: Update flatpak-builder-lint 2024-09-18 16:08:38 -04:00
Exeldro a289581579 docs: Add obs_frontend_get_user_config 2024-09-17 12:10:22 -04:00
gxalpha 16b8e9c3fe libobs: Deselect scene item before removing
Makes sure that a scene item that gets removed is in the "not selected"
state, no matter whether it was selected before. This causes the
"item_deselect" signal to be sent if the item is selected while being
removed.
2024-09-16 18:10:12 -04:00
Norihiro Kamae 61d74fb4ab libobs: Remove obs_output_signal_delay
The function is never called, documented or exported.
2024-09-16 16:29:27 -04:00
PatTheMav b9808eaca8 UI: Fix outdated scene collection and profile method names 2024-09-16 15:53:51 -04:00
Ryan Foster d7c798c60d CI: Use Windows 11 SDK 10.0.22621.0
Before 6c590805e8, builds on Windows would
automatically select a Windows SDK using CMake's rules:

https://cmake.org/cmake/help/v3.25/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.html
https://cmake.org/cmake/help/v3.30/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.html
https://cmake.org/cmake/help/v3.30/policy/CMP0149.html

This meant that CI Windows builds would end up using SDK 10.0.20348.0
because that matched the runner's OS version exactly. Locally, if a
Windows SDK version that exactly matched the host system version was not
installed, CMake would select the latest Windows SDK available. This
caused some observed differences in build success between CI and local
builds if a newer SDK was used locally.

The Windows runners have the 10.0.22621.0 SDK installed, so let's
specifically select that.
2024-09-13 19:08:22 -04:00
PatTheMav f9f974fe7b cmake: Update use of MbedTLS to support update to version 3.6.0
MbedTLS changed a lot of internals with their LTS version 3.6.0, which
are incompatible with the find module currently shipped with
OBS Studio.

The solution requires several changes to be applied at once:

* Rename the generated target name to MbedTLS::mbedtls to match the
  name used by MbedTLS' own CMake package
* Update find module to use the updated target name(s)
* Set CMAKE_FIND_PACKAGE_PREFER_CONFIG to TRUE before trying to find
  MbedTLS to ensure that CMake package files are used with priority
  (Those are shipped only with MbedTLS 3.6.0 in obs-deps).
* A deprecation warning is emitted if the find module is used with
  MbedTLS 3.6.0 available
2024-09-13 18:30:42 -04:00
Ryan Foster f036b0dc3f CI: Update softprops/action-gh-release to v2.0.8 2024-09-13 17:40:42 -04:00
Ryan Foster 232e40f41e CI: Update peter-evans/create-pull-request to v7.0.2
We're currently using peter-evans/create-pull-request v6.0.0 which has a
known issue that affects our services-validator action when attempting
to update an existing PR. This issue was fixed in v6.0.1, but we can
update to v7.0.2.
2024-09-13 17:40:42 -04:00
Etaash Mathamsetty 2a0e614228 build-aux: Use fallback-x11 instead of x11 2024-09-13 16:48:56 -04:00
Kurt Kartaltepe 2ecf2c802c obs-qsv11: Initialize allocator response
We check that mids is a nullptr which may not be the case if this
remains uninitialized. Earlier attempt to fix this assumed we faulted on
the response itself.

fixes #11221
2024-09-13 16:27:02 -04:00
Gale, Thy-Lan 53853df33a obs-qsv11: Add AV1 Screen Content Tools 2024-09-13 15:23:35 -04:00
PatTheMav 6c590805e8 cmake: Update supported CMake version range to 3.28 and 3.30 2024-09-13 14:42:32 -04:00
Exeldro 7a35d7c549 obs-ffmpeg: Add logging of audio track 2024-09-12 18:07:19 -04:00
Exeldro 5b79b4b74d libobs: Add obs_encoder_get_mixer_index 2024-09-12 18:07:19 -04:00
PatTheMav cfc12d0543 cmake: Disable CCache for local builds and enable by default for CI 2024-09-12 17:45:29 -04:00
jcm 552a88a895 mac-virtualcam: Compare camera UUIDs using CFUUID 2024-09-12 17:21:12 -04:00
PatTheMav 4dac84999d libobs: Update macOS platform implementation
Cleans up the source code by sorting functions by topic and also
removes macros for hotkey implementation, removing the need to disable
compiler warnings.

Key codes and descriptions are now contained in arrays which either
use the OBS key code or the macOS key code as lookup keys with all
necessary context information directly associated with the key.

The implementation also uses the zero-initialization rule for arrays
of structs in such a way that the struct's "is_valid" boolean is
"false" by default so that only values explicitly initialized with a
key are ever "valid".
2024-09-12 16:44:39 -04:00
PatTheMav 3e0592dc20 UI: Rewrite scene collection system to enable user-provided storage
This change enables loading scene collections from locations different
than OBS' own configuration directory.

It also rewrites profile management in the app to work off an in-memory
collection of profiles found on disk and does not require iterating
over directory contents for most profile interactions by the app.
2024-09-12 16:18:46 -04:00
PatTheMav 607d37b423 UI: Rewrite profile system to enable user-provided storage location
This change enables loading profiles from locations different than
OBS' own configuration directory.

It also rewrites profile management in the app to work off an in-memory
collection of profiles found on disk and does not require iterating
over directory contents for most profile interactions by the app.
2024-09-12 16:18:46 -04:00
PatTheMav 2635cf3a2a UI: Split global config into app and user config
This introduces a split of the current single ConfigFile instance for
all configuration into two separate instances.

The app config instance contains system-wide settings that mainly
concern the working of the app itself, whereas the user config instance
contains settings actually exposed to the user for the configuration.
2024-09-12 16:18:46 -04:00
tytan652 26d275223a libobs-opengl: Relax texture format copy check
SRGB and non-SRGB formats are compatible for copy.
2024-09-12 15:35:46 -04:00
Fabien Lavocat 8b31c487ba rtmp-services: Remove outdated Dolby Millicast locations 2024-09-12 15:13:16 -04:00
gxalpha a5ebb05c60 CI: Remove run-cmake-format action
cmake-format was replaced with gersemi in
19d3e30a3a and this action is now unused
(and wouldn't work anymore anyways due to the removal of the
./build-aux/run-cmake-format script).

This commit includes build-aux README fix-ups where the now nonexistent
run-cmake-format script was mentioned and the run-gersemi script was
misspelled.
2024-09-12 14:20:28 -04:00
gxalpha 922e2cc151 cmake: Remove remaining cmake-format comments
cmake-format was replaced with gersemi in
19d3e30a3a. As such, these comments no
longer have any effect.
2024-09-12 14:20:28 -04:00
Paul Gregoire 62c4a90809 obs-webrtc: Add STUN support to Link header parse 2024-09-11 13:55:54 -04:00
tytan652 31385006d5 Remove legacy_check CMake macro
The macro was not removed in 72428ccd97
waiting for submodules to be be updated to a commit where their legacy
code path is removed.
2024-09-11 13:24:39 -04:00
Norihiro Kamae e87593b3d4 obs-nvenc: Fix reading uninitialized variable 2024-09-11 13:02:58 -04:00
Vainock 7385947780 CI: Fix condition for changed files in upload locales action 2024-09-11 12:26:37 -04:00
derrod e25a8b3a4f obs-nvenc: Check if device index in settings object is actually set 2024-09-10 18:50:49 -04:00