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.
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.
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.
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.
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.
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
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.
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.
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
* 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
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.
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.
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
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
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.