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.
Update the libaom and SVT-AV1 versions and also apply several
cherry-picked commits to FFmpeg for SVT-AV1.
The libaom commit is what will be used by obs-deps once
https://github.com/obsproject/obs-deps/pull/90 is merged.
It also apply obs-deps FFmpeg patches.
And cherry-pick the following commit to fix issues with VAAPI:
avcodec/vaapi_encode: Fix segfault upon closing uninitialized encoder
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/d1b47f3
nv-codec-headers are also updated.
Note: The actual used commit hash is two commits after n4.4.1 tag.
CEF is installed in /app/cef. After OBS is built, it no longer needs
/app/cef because everything that OBS needs is copied elsewhere.
So removing /app/cef at the cleanup stage will not cause issue
and will also reduce bundle size.
We require PipeWire 0.3.40 or later in preparation for proper
DMA-BUF handling, which includes negotiation of modifier lists and
dropping of single modifiers.
This commit should be reverted as soon as the Freedesktop Flatpak SDK
contains this or a newer PipeWire version.
Tested on Ubuntu 18.04 CI and Ubuntu 20.04 desktop, built with sysroot
and is_official_build. Ensures this build of CEF will run on a variety
of system configurations.
This reverts commit 7bf7c01ff1b45e5e6c295982f89cfae896e94d8d.
The f639d8923 CEF wrapper fails to build on Ubuntu 18.04 due to
outdated glibc, and Jim's recent commits seem to solve the shutdown
assert. For now, revert to the known functional build.
Add an extension point for org.freedesktop.LinuxAudio.Plugins,
and create the corresponding folder at post-install time.
Commit originally made by @hfiguiere for Flathub.
This is what the Flathub manifest does, which allows for plugins
distributed through Flatpak extension points.
Add extension point for Flatpak-distributed plugins.
In the future, a full FFMPEG build with x264 and nvenc will be
provided as an extension to the org.freedesktop.Platform runtime,
but for now we have to manually build it.
Update x264 to the latest git commit.
The flatpak-builder tool now supports passing secrets options to the
build system. These options are not printed during the build, nor
added to the resolved manifest after build, so they don't leak env
vars from CI.
Make secret variables part of the Flatpak workflow environment, like
the main workflow. Pass the various services hashes and clientids to
the build system using the new "secret-opts" key.
This reverts commit c37069277335d5cb445792e3a062a0512dbd0307.
The PR that introduced this commit was opened before the browser plugin
was enabled, and when the browser was effectively enabled, this change
was already in place and didn't conflict, leaving us with both a
-DBUILD_BROWSER=ON *and* -DBUILD_BROWSER=OFF in place.
It is not possible to run host system executables like modinfo, pkexec,
and modprobe inside a Flatpak sandbox. However, Flatpak provides a way
to run command on the host system: the flatpak-spawn executable.
flatpak-spawn is a tiny helper that, when executed with the '--host'
parameter, talks to the org.freedesktop.Flatpak D-Bus interface to run
and retrieve the return value of the executable. This provides OBS Studio
a way to escape this sandbox limitation without opening large holes in
the sandbox.
Make v4l2's implementation of VirtualCam run system commands using
flatpak-spawn when inside a Flatpak sandbox. The detection of the sandbox
is done by checking the existence of the /.flatpak-info file, which is
created by Flatpak itself, and only exists inside the sandbox. If OBS
Studio is not running inside a Flatpak sandbox, run the exact same command
it used to run before this commit.
Add the permission to talk to the org.freedesktop.Flatpak D-Bus interface
to the Flatpak manifest, so we can run flatpak-spawn with the '--host'
parameter.
Notice that the same constraints apply with and without Flatpak: the host
system needs to have the v4l2loopback kernel module available for the v4l2
implementation of VirtualCam to work.
It seems that the browser source works inside a Flatpak sandbox and/or
Wayland with CEF 4280, so let's try and reenable it.
This reverts commit e64c61710fb064ca87341f091ac55cb5861fc202.
luajit developers ask people to use branches instead of tarballs, however,
Flatpak interprets having both 'commit' and 'branch' fields as 'use this
branch, and this commit should be at the top of the branch', which is not
really what we want.
Remove the specified commit from the Flatpak manifest.
- Update LuaJIT according to upstream recommendations (maintainers of
this project prefer that distributors use the git repository directly,
instead of archives. Do that, and also update the Lua path for swig.)
- Update ffmpeg and drop patch which is included in this updated release
now.
- Update x264
- Update nv-codec-headers
- Update mbedtls
The Chromium sandbox is conflicting with the Flatpak sandbox in a non-trivial,
non-workaroundable way. Until Chromium / CEF provides a way to unconditionally
disable the entire sandbox, let's not degrade the Flatpak experience.