Commit Graph

69 Commits

Author SHA1 Message Date
tytan652
ef9ec6fcc3 build-aux,CI: Replace Flatpak KDE SDK with Freedesktop SDK
The Qt components are from the same repo as other dependencies.

The KDE Platform was never a good fit for OBS Studio for multiple
reasons:
- Life cycle too short and misaligned with OBS Studio causing users to
  get EOL notification too often.
- Third-party Qt plugins were allowed which could change Qt's behavior.
- KDE exclusives sandboxed holes were inherited.
2025-12-17 21:15:17 -05:00
tytan652
081b684959 build-aux: Replace Flatpak modules with pre-compiled dependencies
To reduce compile time and prepare for aarch64 support, dependencies
compilation except CEF is moved to a BuildStream project junctionned
with Freedesktop SDK.

The BuildStream project is configured to build dependencies in a
Flatpak-like environment.
2025-12-17 21:15:17 -05: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
tytan652
2bd23cd50d libobs,cmake: Replace vendored SIMD Everywhere by prefix/system install
SIMD Everywhere finder needs to be installed alongside libobs CMake
package since its headers depends on it.

C++ cmath header is included on Windows on ARM to ensure that all math
functions are correctly defined when included in C++ code.
https://github.com/simd-everywhere/simde/issues/1304

macOS intrinsics is included to make sure that no redefinition error
happens.
2025-08-21 15:22:08 -04:00
tytan652
363874b40f build-aux: Remove unused Flatpak static permission 2025-08-19 17:02:40 -04:00
Sebastian Beckmann
fbf08cc944 build-aux: Add test directory to clang-format file list 2025-08-19 15:16:40 -04:00
PatTheMav
78243d790d CI: Handle possible error condition in gersemi branch of format script
Some checks failed
Push / Format 🔍 (push) Has been cancelled
Push / Build 🧱 (push) Has been cancelled
Push / Validate Compatibility 🕵️ (push) Has been cancelled
Push / Validate Services 🕵️ (push) Has been cancelled
Push / Update Documentation 📖 (push) Has been cancelled
Push / Deploy Documentation to Cloudflare ☁️ (push) Has been cancelled
Push / Create Sparkle Appcast 🎙️ (arm64) (push) Has been cancelled
Push / Create Sparkle Appcast 🎙️ (x86_64) (push) Has been cancelled
Push / merge-appcasts (push) Has been cancelled
Push / Windows Signing ✍️ (push) Has been cancelled
Push / Create Release 🛫 (push) Has been cancelled
Scheduled / Check Service Availability 🛜 (push) Has been cancelled
Scheduled / Cache Cleanup 🧹 (push) Has been cancelled
Scheduled / Upload Language Files 🌐 (push) Has been cancelled
Scheduled / Build 🧱 (push) Has been cancelled
Scheduled / Analyze 🔬 (push) Has been cancelled
Scheduled / Upload Steam Builds 🚂 (push) Has been cancelled
2025-08-01 19:02:04 +02:00
tytan652
523ddeec9c build-aux: Use rebuilt CEF on Linux with backported API on Flatpak 2025-07-12 14:16:49 -04:00
Ryan Foster
e8a77fd0f2 build-aux: Revert libsrt to v1.5.3
With libsrt v1.5.4, we saw issues when using multiple Media Sources
ingesting SRT. If one would shut down or fail, then all SRT Media
Sources would stop working. While there has been no confirmation that
this also occurs on Linux, out of an abundance of caution, revert libsrt
to v1.5.3, which was used for OBS Studio 30.1, 30.2, and 31.0.
2025-07-11 20:35:49 -04:00
Ryan Foster
ac019ba810 build-aux: Update Flatpak module for mbedTLS to v3.6.4
MbedTLS v3.6.2 has an issue with fragmented TLS 1.3 handshakes, causing
some RTMPS streams to fail to connect. Update to mbedTLS v3.6.4 where
this is fixed.
2025-07-11 20:35:49 -04:00
Ryan Foster
f6c6b3f9d1 build-aux: Update Flatpak modules
* Revert nv-codec-headers to n12.2.72.0
* Update FFmpeg to 7.1.1
2025-05-23 19:33:32 -04:00
Alex Luccisano
4efc6bf0d8 build-aux: Fix incorrect HEVC vertical resolution on AMD VCN
AMD VCN uses a different surface alignment compared to other GPUs for
encoding, which required an upstream fix in Mesa, libva, FFmpeg, and
the VCN firmware.

This commit adds the FFmpeg patches to the flatpak build of OBS which
is currently using FFmpeg version n7.1, however the patches were applied
upstream after that release. libva API version 1.21 or higher is also
required, which is satisfied by using KDE runtime 6.8.

The incorrect 1920x1088 HEVC output resolution (instead of 1920x1080)
resulted in streaming disconnects for Twitch Enhanced Broadcsating
Linux users. Local file recording when using AMD VAAPI HEVC also
outputs 1088 instead of 1080. This commit fixes both cases.

Please refer to [1], [2], and [3] for context. The patches are taken
from [2].

Note that the fix is applicable to flatpak builds only. Standalone and
Debian package builds depend on the host library versions and will
still have the problem until a version of FFmpeg with the fix is used.

[1]: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=11222
[2]: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=13168
[3]: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10985
2025-04-25 18:14:23 -04:00
PatTheMav
6282384977
CI: Update clang-format version to 19.1.1 2025-04-17 18:16:33 +02:00
Ryan Foster
cfb23a51ff build-aux: Use GitHub repo for LuaJIT
Curl reports that the luajit.org git repo is using a self-signed cert.
This is causing git operations to fail. Let's just use the GitHub
mirror.
2025-04-16 12:24:58 -04:00
tytan652
5e3b28d667 build-aux: Update Flatpak modules
- Update MbedTLS to v3.6.2
- Update nv-codec-headers to n13.0.19.0
- Update srt to v1.5.4
- Update SVT-AV1 to 2.3.0
- Update FFmpeg to 7.1
- Update LuaJIT to v2.1 a4f56a459
- Update VPL to v2.14.0
- Update vpl-gpu-rt to 24.4.4
- Update Asio to 1.32.0
2025-03-14 12:52:27 -04:00
tytan652
56f7fcc8cf build-aux,CI: Update KDE Flatpak runtime to 6.8
The underlying Freedesktop runtime is now 24.08 with AOM 3.10.x and
libvpx 1.14.x
2025-03-14 12:52:27 -04:00
tytan652
a38a69d3b4 build-aux: Update Flatpak libdatachannel to v0.21.1
This update needs to be done before the runtime change, otherwise the newer GCC
will fail to build it because of libdatachannel missing headers.
2025-03-14 12:52:27 -04:00
Ryan Foster
3d9d066d07 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.
2025-03-03 15:10:46 -05:00
PatTheMav
49e23e184c
build-aux: Replace UI directory with frontend directory for formatters 2025-01-08 17:33:14 +01:00
tytan652
03bc6d7cb4 build-aux: Remove CEF stripping workaround
This cause issues in Flatpak IDE like GNOME Builder.
2024-10-22 15:08:10 -04:00
Etaash Mathamsetty
2a0e614228 build-aux: Use fallback-x11 instead of x11
Some checks are pending
Push / Format 🔍 (push) Waiting to run
Push / Build 🧱 (push) Waiting to run
Push / Validate Compatibility 🕵️ (push) Waiting to run
Push / Validate Services 🕵️ (push) Waiting to run
Push / Update Documentation 📖 (push) Waiting to run
Push / Deploy Documentation to Cloudflare ☁️ (push) Blocked by required conditions
Push / Create Sparkle Appcast 🎙️ (arm64) (push) Blocked by required conditions
Push / Create Sparkle Appcast 🎙️ (x86_64) (push) Blocked by required conditions
Push / merge-appcasts (push) Blocked by required conditions
Push / Windows Signing ✍️ (push) Blocked by required conditions
Push / Create Release 🛫 (push) Blocked by required conditions
2024-09-13 16:48:56 -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
tytan652
8963d25dd2 build-aux: Update Flatpak modules
Some checks are pending
Push / Format 🔍 (push) Waiting to run
Push / Build 🧱 (push) Waiting to run
Push / Validate Compatibility 🕵️ (push) Waiting to run
Push / Validate Services 🕵️ (push) Waiting to run
Push / Update Documentation 📖 (push) Waiting to run
Push / Deploy Documentation to Cloudflare ☁️ (push) Blocked by required conditions
Push / Create Sparkle Appcast 🎙️ (arm64) (push) Blocked by required conditions
Push / Create Sparkle Appcast 🎙️ (x86_64) (push) Blocked by required conditions
Push / merge-appcasts (push) Blocked by required conditions
Push / Windows Signing ✍️ (push) Blocked by required conditions
Push / Create Release 🛫 (push) Blocked by required conditions
* Update SVT-AV1 to 2.2.1
* Update FFmpeg to 7.0.2
* Update LuaJIT to 2.1 f725e44cda
* Update Asio to 1.31.0
* Update qrcodegen-cmake to v1.8.0-cmake3
2024-09-05 23:56:00 -04:00
tytan652
b7dbaf4eee build-aux: Update Flatpak CEF from 103/5060 to 127/6533
The CEF module is also modified to:
- Use the pre-built wrapper included in the tarball
- Preserve debug symbols inside its binaries
  - The copy done later by OBS Studio build-system will be split from
    its debug symbols
2024-08-30 23:05:05 -04:00
tytan652
72428ccd97 Remove CMake legacy code path
Except submodules and legacy_check macro since the former depend on it.
2024-08-28 13:53:25 -04:00
tytan652
9e547d8479 build-aux: Update Flatpak modules
* Update libvpl to version 2.12.0
* Update vpl-gpu-rt to version 24.2.5
  * 24.3 requires VVC from libva which is not the case with the actual
    runtime in use
* Update nv-codec to version 12.2.72.0
2024-08-21 19:38:17 -04:00
PatTheMav
d81fcd70e0 cmake: Update cross-platform build project management for Windows
Enables creation of x64 and x86 child projects when building on ARM64
and decouples functionality from legacy_check function
2024-08-20 16:00:21 -04:00
PatTheMav
19d3e30a3a CI: Replace cmake-format with gersemi for CMake file format checks 2024-08-14 12:07:47 -04:00
Ryan Foster
b9f63632a1
Merge pull request #10019 from derrod/remove-ftl
Remove FTL.
2024-07-29 16:41:31 -04:00
tytan652
7a5b914086 Add shared folder in gitignore and format scripts 2024-07-27 07:38:36 +02:00
derrod
dfc1feac1a build-aux: Remove ftl-sdk exclusions from format script 2024-07-14 06:09:49 +02:00
tytan652
c974a40b51 build-aux: Update Flatpak ntv2 module to libajantv2 2024-05-10 16:51:56 -04:00
tytan652
aa3f980603 build-aux: Update Flatpak VPL modules
* Update libvpl to 2.11.0
  * Adds a build option to no longer require ONEVPL_SEARCH_PATH to be set
* Update onevpl-intel-gpu to vpl-gpu-rt 24.2.2
2024-05-10 16:51:56 -04:00
tytan652
03ab26ecac build-aux: Update Flatpak modules
* Update SVT-AV1 to 2.0.0
* Update aom to 3.9.0
  * Freedesktop SDK already provides it, so the module is disabled
* Update FFmpeg 7.0
* Update LuaJIT 5790d25397
* Update libdatachannel to 0.21.0
* Update Asio to 1.30.2
2024-05-10 16:51:56 -04:00
tytan652
5f1d60b1a0 build-aux: Disable DeckLink in the Flatpak
Since the Flatpak became part of the repo, nothing has changed on
BlackMagic side.

DeckLink libraries are still not redistributable and without stable
download link so even extra-data is not usable.

This makes enabling DeckLink feature in the Flatpak impossible without
involving customization on the end-user side which is not how Flatpak is
designed for.
2024-05-08 18:04:14 -04:00
tytan652
d661160560 build-aux: Make Flatpak use CMake build framework 3.0
Also change CMake build type to RelWithDebInfo which is the preferred
build type in Freedesktop SDK environments.
2024-04-16 11:15:22 -04:00
tytan652
0faa661f2b CI,build-aux: Add uthash on Linux 2024-04-07 10:01:25 +10:00
PatTheMav
dd3255815c CI: Update clang-format version to 17.0.3 2024-03-11 15:55:30 -04:00
PatTheMav
ddeb89f71f CI: Limit format checks to changed files only
Before the CI checks for source code and CMake files would always
check the entire source code even if just a single files has been
changed.

With this update, the formatting script is enhanced to accept a list
of files (which is generated as a condition to run the script in the
first place) which ensures that a PR will only fail validation over
files it changed itself.
2024-03-09 15:45:36 -05:00
tytan652
ae1ab38de3 build-aux: Update Flatpak audio plugins branch
The KDE Runtime 6.6 relies on the Freedesktop SDK 23.08 and so the branch of audio plugins should be updated too.
2024-02-11 19:09:11 -03:00
Ryan Foster
66c0080d5c CI: Update deps to 2024-01-27 release
This commit also modifies build-aux to update libdatachannel.

This commit also modifies obs-webrtc to avoid a compiler error.

Notable changes:
 * deps.ffmpeg: Update libdatachannel to 0.20.1
 * deps.macos: Remove Carla
 * deps.macos: Add uthash to macOS deps
 * deps.windows: Remove Carla
 * deps.windows: Add uthash to Windows deps
2024-01-27 15:33:09 -05:00
tytan652
cd9696db6b build-aux: Update Flatpak modules
* Update SVT-AV1 to 1.8.0
* Update aom to 3.8.0
* Update libsrt to 1.5.3
* Update nv-codec-headers to 12.1.14.0
* Update FFmpeg to 6.1.1
* Update LuaJIT to 2.1 c525bcb902
* Update Asio to 1.29.0
* Update nlohmann JSON to 3.11.3
* Update Intel oneVPL GPU to 23.4.3
* Update libdatachannel to 0.19.5
  * Update plog to 1.1.10
2024-01-22 16:43:58 -05:00
tytan652
5078b95fc9 build-aux: Update Flatpak oneVPL module to libvpl
Update oneVPL v2023.3.1 to libvpl v10.1
2024-01-22 16:43:58 -05:00
tytan652
c45d6e4d24 build-aux: Update KDE Flatpak runtime to 6.6
This new runtime version relies on Freedesktop SDK 23.08.

Disable PipeWire module since Freedesktop SDK 23.08 provides a more
recent version of PipeWire.

Intel Media SDK is patch to support being compiled with more recent
version of GCC
2024-01-22 16:43:58 -05:00
Dennis Marttinen
fb8d228a82 build-aux: Work around oneVPL search path for Flatpak QSV
QuickSync requires oneVPL, which is unable to find its libraries in the
Flatpak, resulting in MFX_ERR_NOT_FOUND and the encoders not working.
The libraries are present in the install prefix (/app/lib), which is
currently not automatically added to the search paths, see the issue
https://github.com/intel/libvpl/issues/119 for details. For now,
work around the issue by setting ONEVPL_SEARCH_PATH explicitly.
2024-01-21 10:47:53 +11:00
tytan652
35a48ab0c0 build-aux: Improve documentation 2023-12-16 18:10:51 -06:00
tytan652
e14b0e99bb build-aux: Remove StatusNotifierItem Flatpak permission
Since Qt 6.2, "org.kde.StatusNotifierItem-2-2" is no longer needed to
make the tray feature work
2023-11-08 11:35:15 +02:00
tytan652
b09cccb872 build-aux: Update Flatpak CEF build
Our previously applied Chromium patch had an error. We have rebuilt
them. Use the rebuilt CEF Linux build.
2023-10-12 08:50:42 -03:00
tytan652
7976ffeb40 build-aux: Update Flatpak CEF build
Update CEF build to patch two CVEs:
 * CVE-2023-4863
 * CVE-2023-5217
2023-10-09 18:58:05 -04:00
tytan652
d03188896d build-aux,CI: Bump Flatpak KDE Runtime to 6.5 2023-09-05 13:14:28 -04:00