* x264: Updated to the same commit as obs-deps
* srt: Updated to 1.5.1
* aom: Updated to 3.5.0
* svt-av1: Updated to 1.3.0
* ffmpeg: Updated to the same commit and patches as obs-deps
* luajit: Updated to the same commit as obs-deps
The 6.4 runtime rely on Freedesktop 22.08 which provide a more recent
version of Mesa and PipeWire.
The switch to 22.08 also requires to migrate paths of VST 2 plugins.
In dfccb26bb2, in my haste to fix Windows
CI, I accidentally included a change to disable Windows scripting which
I had been using locally. Reverse that change to re-enable scripting in
Windows builds.
The backtick double-quote pattern does not work in PowerShell 7.3.x.
There are still some other possible PowerShell 7.3.x issues in the
packaging steps, but let's fix this first to get regular builds working
in PowerShell 7.3.x again.
Apparently Steam running the OBS launch script makes it run
inside Rosetta as well, so it ended up launching the x86 version
even on arm64 systems.
Explicitly detect Rosetta translation and set arm64 in those cases.
The CI build script is useful to build OBS Studio even outside the CI
environment. However, the current script hard codes adding the 'amd64'
architecture to dpkg, the Debian/Ubuntu package management database.
This breaks the system when run on non-x86 machines. e.g., a
linux-aarch64 VM running on an Apple silicon macbook. Fixing the system
requires telling dpkg to remove 'amd64' again with 'sudo dpkg
--remove-architecture amd64'
As the CI build always runs on an amd64 machine, adding amd64 is not
necessary and can be safely removed.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Fixes#7146
Normally, Qt and CEF each run their own version of GTK, often causing
conflicts. This commit introduces a build of CEF where GTK has been
disabled using `use_gtk=false` as we do not require the Chrome runtime.
This is an experiment and may end up being the safest long-term solution.
Note: This does introduce potential quirks/incompatibilities, such as
browser sources no longer being able to display alert() dialogs, and
potentially file browser dialogs not working from CEF.
This is better than the alternative. If necessary, such dialogs can be
reimplemented using Qt at a later date, and would likely provide a more
consistent user experience.
On CI, do not fetch tags in packaging scripts. For some reason, the
checkout action seems to locally update any new git tags on the runner:
t [tag update] (commit-hash) -> tag-name
This causes future calls to fetch git tags to fail on CI with:
! [rejected] tag-name -> tag-name (would clobber existing tag)
To avoid this, we can simply not fetch tags a second time on CI.
Additionally, fix the Windows Installer job.
* x264: Updated to the same commit as obs-deps
* srt: Updated to 1.5.0
* mbedtls: Updated to 3.2.1
* librist: Updated to the same commit as obs-deps
* aom: Updated to 3.4.0
* svt-av1: Updated to 1.1.0
* ffmpeg: Updated to the same commit and patches as obs-deps
* luajit: Updated to the same commit as obs-deps
In .github/workflows/main.yml, for the linux_build job, the variable
BUILD_FOR_DISTRIBUTION is set to the string "true" or "false" on CI.
Later, in CI/linux/03_package_obs.sh, we perform a boolean check on
this variable. However, "false" will evaluate as true, because it is a
non-null string. This was causing CI Linux packages to always build as
if BUILD_FOR_DISTRIBUTION was enabled, which caused the git commit hash
to be omitted from package filenames.
Since we know the expected values, let's just test directly if the
variable equals "true" to get the expected behavior.
Support of the new mpegts output would require manual compilation of
librist & libsrt libs.
CI on ubuntu hasn't been updated so disable the new mpegts output for
now.
Signed-off-by: pkv <pkv@obsproject.com>
Switch to Visual Studio 2022 and clang-format 13.
The Ubuntu 22.04 image currently has clang-format 12.0.1, 13.0.1, and
14.0.0. VS2022 17.2 ships clang-format 13.0.1, so let's use that for now
until VS2022 17.3 is available with clang-format 14.
This commit also makes the necessary changes to allow the clang-format
check to pass.
This commit also updates the obs-browser submodules with the necessary
changes.
If the path to clang-format has spaces, as might occur when testing
locally with a version not covered in this script, it will fail. Enclose
the call to clang-format in quotes to prevent this failure.
Please visit the submodule repo for blame history:
https://github.com/obsproject/obs-vst
This also replaces the obs-vst .clang-format with obs-studio's.
This commit depends on the previous commit, which removes the submodule
separately as Git complains otherwise.
Co-authored-by: Alex Anderson <anderson.john.alexander@gmail.com>
Co-authored-by: Anton <camotank12345@gmail.com>
Co-authored-by: Blue Cat Audio <support@bluecataudio.com>
Co-authored-by: Cephas Reis <c3r1c3@nevermindonline.com>
Co-authored-by: Colin Edwards <colin@recursivepenguin.com>
Co-authored-by: Florian Zwoch <fzwoch@gmail.com>
Co-authored-by: Fogmoon <i@fogmoon.com>
Co-authored-by: Gol-D-Ace <Gol-D-Ace@users.noreply.github.com>
Co-authored-by: Igor Bochkariov <ujifgc@gmail.com>
Co-authored-by: Jesse Chappell <jesse@sonosaurus.com>
Co-authored-by: Keen <523059842@qq.com>
Co-authored-by: Kurt Kartaltepe <kkartaltepe@gmail.com>
Co-authored-by: Matt Gajownik <matt@obsproject.com>
Co-authored-by: Matt Gajownik <matt@wizardcm.com>
Co-authored-by: Richard Stanway <notr1ch@users.noreply.github.com>
Co-authored-by: Ryan Foster <RytoEX@gmail.com>
Co-authored-by: follower <github@rancidbacon.com>
Co-authored-by: gxalpha <beckmann.sebastian@outlook.de>
Co-authored-by: jp9000 <obs.jim@gmail.com>
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
Co-authored-by: mntone <sd8@live.jp>
Co-authored-by: tytan652 <tytan652@tytanium.xyz>
Co-authored-by: wangshaohui <97082645@qq.com>
Co-authored-by: wangshaohui <wang.shaohui@navercorp.com>
Notable changes:
* Windows: Add Qt 5 and 6 builds
* Windows: Remove nasm native build
* Windows: Update srt from 1.4.2 to 1.4.4
* Windows: Update SWIG from 3.0.12 to 4.1.0-git
* macOS: Update libvpx from 1.10.0 to 1.11.0
* macOS: Update srt from 1.4.1 to 1.4.4
* macOS: Update SWIG from 3.0.12 to 4.1.0-git
* macOS: Update x264 from r3059 to r3060
Due to changes on obs-deps, per-arch Qt builds do not contain universal
binaries anymore. To allow CI to cross-compile on x86_64 runners,
the universal release is used, which will run on both architectures.
CMake config files are required for building OBS plugins with the
Flatpak as a runtime.
Add a post-install command that installs the `obs_libraries`
component, which provides the config files.
Generally moves all the plugin code into xcomposite-input.cpp and
removes all C++ dependencies.
Migrate as much as possible to xcb from Xlib to enable us to handle
errors and attribute them to the correct callers. This caused many other
knock on issues such as wrongly attributed errors and cleanup code
working incorrectly.
That allows us to use the xcursor-xcb implementation and delete the pure
Xlib implementation. We also add the missing functionality from the Xlib
implementation to the xcb implementation.
Capture glXCreatePixmap errors which occur most commonly on
nvidia+gnome due to nvidia's driver being unable to allocate more than 1
pixmap per window and gnome being the only compositor to read window
data via glx pixmaps.
Fix cleanup after failed glXCreatePixmap that might have leaked pixmaps
and prevented later captures on nvidia drivers for the same reason.
The Windows build script would respect the user-specified build
directory for the configure step, but not for the build step. Fix that
by applying the same logic in Configure-OBS to Build-OBS.
Hardcode short hash length to 9 characters in CI and packaging scripts.
It is not guaranteed that short hashes are the same length across
different platforms or different versions of git. This caused problems
with upload/download action names, as the hashes sometimes didn't match.
Fix the download artifact name in the Windows installer job and the
macOS notarization job to prevent them from failing due to a name
mismatch.
Current build scripts rely on comparing a architecture string provided
by the OS which will be localised in certain languages.
This change uses a boolean 64-bit flag to use script-defined identifiers
to avoid this issue.