Commit Graph

291 Commits (master)

Author SHA1 Message Date
tytan652 02409c46fa flatpak: Add SVT-AV1 support 2022-01-02 16:21:52 -03:00
tytan652 6fdfc88467 flatpak: Add libaom support
It also add FFmpeg libaom patches from obs-deps.
2022-01-02 16:21:52 -03:00
tytan652 9167a7177d flatpak: Add RIST support to FFmpeg
Mbed TLS module is moved before librist to allow the latter to be built
with Mbed TLS.

It also add FFmpeg librist patches from obs-deps.
2022-01-02 16:21:52 -03:00
tytan652 f74c37043e flatpak: Update FFmpeg to 4.4.1
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.
2022-01-02 16:21:52 -03:00
tytan652 b04626f72d flatpak: Deduplicate CEF from the bundle
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.
2021-12-22 15:10:15 -03:00
tytan652 6ad54f5252 flatpak: Add AJA NTV2 library
This enable AJA plugins on flatpak builds
2021-12-22 15:10:15 -03:00
columbarius 01ac816a33 CI: Add PipeWire 0.3.40 to Flatpak
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.
2021-12-22 14:27:53 -03:00
Matt Gajownik 5646981ce5 CI: Update CEF hash for Flatpak to Release 4638
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.
2021-12-22 09:44:00 +11:00
Matt Gajownik adff02a6b7 Revert "CI: Update CEF hash for Flatpak to fix crash"
This reverts commit 7bf7c01ff1.

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.
2021-12-21 22:14:54 +11:00
Matt Gajownik 7bf7c01ff1 CI: Update CEF hash for Flatpak to fix crash
This fixes a crash/assert on shutdown caused by Chromium debug mode.
2021-12-20 21:58:27 +11:00
PatTheMav 0072629ceb CI: Fix build issues introduced by updates obs-deps 2021-12-19 10:47:40 -06:00
Matt Gajownik 9c12a9ac98 CI: Update Linux CEF version to 4638 (Chromium 95) 2021-12-17 12:24:01 -08:00
Matt Gajownik 0c26becd80 CI: Update macOS CEF version to 4638 (Chromium 95) 2021-12-17 12:24:01 -08:00
Kurt Kartaltepe 0729007f19 libobs: Add Wayland hotkey infrastructure
Users on Wayland are displeased that they cannot see their hotkey
bindings. This enables key reporting like X11, and has the infrastructure
in place in case Wayland ever decides to allow for capturing input.
2021-12-16 10:54:29 -03:00
Georges Basile Stavracas Neto 0d3ce3dfe6 CI: Allow Flatpak audio plugins be found
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.
2021-11-25 09:20:05 -03:00
Georges Basile Stavracas Neto baead91374 CI: Add extension point to Flatpak plugins
This is what the Flathub manifest does, which allows for plugins
distributed through Flatpak extension points.

Add extension point for Flatpak-distributed plugins.
2021-11-25 09:20:05 -03:00
Georges Basile Stavracas Neto 4453cca6a7 CI: Update Flatpak's v4l-utils to 1.22
No functional changes.
2021-11-25 09:20:05 -03:00
Georges Basile Stavracas Neto b36b204eed CI: Update Flatpak's x264
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.
2021-11-25 09:20:05 -03:00
Paul Hindt ce3ae8e423
aja: Capture and Output plugin for AJA Video Systems IO devices
* aja: Initial commit of AJA capture/output plugin

* aja: Fix clang-format on aja-output-ui code

* aja: Remove script used during dev/testing

* aja: Address pull request feedback from @RytoEX

* aja: Remove the SDK sources and update CMakeLists to point to new headers-only/static libs dependency distribution.

* aja: Only build AJA plugin on x64 on macOS for now

* aja: Remove the non-English placeholder locale files. The english strings/files will be produced via crowdin, according to @ddrboxman.

* aja: Add FindLibAJANTV2.cmake script to locate the ajantv2 headers and static libs in the OBS external deps package(s). Tested on Windows x64. macOS and Linux x64 TBD.

* aja: Add ajantv2/includes to FindLibAJANTV2 include search paths

* aja: Remove commented code from aja CMakeLists

* aja: Remove debug code and comments that are no longer needed.

* aja: Fix indentation

* aja: Remove disablement of clang-format in routing table and SDIWireFormat map

* aja: Use spaces for all indentation in widget crosspoint arrays where we disable clang-format

* aja: Address code style comments made by @RytoEX

* aja: Fix uneven indentation

* aja: More fixes to if/else placement and remove superfluous comments.

* aja: Rename 'dwns' to 'deactivateWhileNotShowing' for clarity. The DeckLink plugin still uses the variable name 'dwns' and should be changed, if desired, in a separate PR.

* aja: Remove X11Extras dependency from AJA Output frontend plugin

* aja: Add patch from Jim to find AJA release/debug libs

* aja: Improve AV sync of queued video/audio sent to the AJA card in the AJA Output plugin.
2021-11-23 20:31:11 -06:00
Georges Basile Stavracas Neto 1392ea5ca6 CI: Enable services on Flatpak builds
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.
2021-11-03 13:17:03 -03:00
gxalpha 16906e7290 CI: Add copyright information to macOS bundle plist 2021-10-24 02:29:12 -07:00
Artem Polishchuk 8a1d74688c CI: Update modules for Flatpak build
* CI: Update mbedtls to v2.27.0
  * CI: Update srt to v1.4.4

Mandatory update for org.kde.Platform 5.15-21.08 runtime.
2021-10-16 15:55:10 -07:00
Artem Polishchuk 2f636ab2da CI: Update KDE Platform to 5.15-21.08 (Flatpak) 2021-10-16 15:55:10 -07:00
gxalpha 0d755c3691 mac-virtualcam: Move DAL plugin to plugin data directory
Moves the DAL plugin to the data directory of the mac-virtualcam. Until
now, it was just lying in the top-level data directory
2021-08-17 08:21:32 -07:00
Yuriy Chumak eb6ba44c8a UI: Include QtNetwork as a direct dependency
(Jim note: Rather than copy the QtNetwork library manually like we were
doing before, this makes it so that QtNetwork is used as a dependency of
the UI. The cmake used to copy the library manually thus us no longer
necessary.)
2021-07-24 15:50:59 -07:00
Georges Basile Stavracas Neto 21a9c5b7d9 flatpak: Remove D-Bus permissions to talk to session managers
They were used to implement session inhibition, but with the new
portal-based implementation in place, they aren't necessary anymore.
2021-07-18 14:04:44 -07:00
Georges Basile Stavracas Neto 2b1eda69e7 flatpak: Cleanup unwanted static libraries
The CEF static library in special is gigantic (50MB+) and
was significantly increasing the bundle size.
2021-05-08 18:53:02 -07:00
Georges Basile Stavracas Neto 834b03f489 Revert "flatpak: Disable obs-browser build"
This reverts commit c370692773.

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.
2021-05-08 18:53:02 -07:00
Kurt Kartaltepe 0f172a0bc7 CI: Remove unneeded runtime deps
Removes kernel headers and dkms packages from the CI pipeline. These are
only needed when running obs and not when building. This avoids crashing
and burning in CI when secureboot is enabled. see: https://github.com/obsproject/obs-studio/pull/4560/checks?check_run_id=2403303957
2021-04-30 18:44:01 -07:00
gxalpha 3efc3dbb0f CI,cmake: Fix macOS version information
Fixes an issue where on macOS the app’s Info window in Finder would say
"Version: OBS - Free and Open Source Streaming/Recording Software"
instead of the version set in CFBundleShortVersionString.

Since CFBundleGetInfoString is deprecated anyways, it can safely be
removed.
2021-04-18 17:30:31 -07:00
Georges Basile Stavracas Neto 7a87777225 linux-v4l2: Use flatpak-spawn when inside a Flatpak sandbox
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.
2021-04-18 17:27:33 -07:00
Georges Basile Stavracas Neto 495687294b flatpak: Reenable browser source
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 e64c61710f.
2021-04-16 13:21:59 +10:00
Colin Edwards 1274943a0b CI: Specify arch for prebuilt deps 2021-04-11 20:28:04 -05:00
tytan652 c370692773 flatpak: Disable obs-browser build 2021-04-09 08:29:25 -07:00
Bilal Elmoussaoui 916d6d4bf2 flatpak: Use current tree for building OBS
We always want to build the current build tree, not the upstream
repository.
2021-04-03 00:30:15 +11:00
SCG82 7225d248c3 CI: Quote all bash variables containing paths 2021-03-30 03:51:00 -07:00
Georges Basile Stavracas Neto d0681b6db8 CI: Disable PipeWire on Ubuntu
Unfortunately, neither Ubuntu 20.04 nor 18.04 have a recent enough
PipeWire package. Disable the PipeWire bits of linux-capture there.
The Flatpak workflow is still able to build it, so keep it enabled
there.
2021-03-29 17:00:32 -03:00
Georges Basile Stavracas Neto 706192b551 flatpak: Expose PipeWire socket
So that it can be talked to from the sandbox.
2021-03-29 17:00:31 -03:00
Georges Basile Stavracas Neto b98bad1f30 flatpak: Don't specify luajit commit
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.
2021-03-24 11:17:50 +11:00
Georges Basile Stavracas Neto 1a05c4f48e flatpak: Update dependencies
- 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
2021-03-16 01:48:51 -07:00
PatTheMav 9da6fc67c4 CI: Fix missing entitlements on CEF components for obs-browser 2021-03-01 08:27:16 -08:00
Georges Basile Stavracas Neto ce50020414 flatpak: Enable Wayland
Expose the Wayland socket to the sandbox, and enable Wayland at build
time using the new ENABLE_WAYLAND define for CMake.
2021-02-14 12:36:23 +11:00
Georges Basile Stavracas Neto e64c61710f flatpak: Disable browser for now
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.
2021-02-12 04:59:30 -08:00
Georges Basile Stavracas Neto 586767ab12 ci: Install qtbase5-private-dev on Linux
List this dependency both under CI/install-dependencies-linux.sh, and
.github/workflows/main.yml.
2021-02-01 19:03:43 -03:00
PatTheMav d2ca8b5d90 CI: Re-enable Python scripting support on CI for macOS
Closes obsproject/obs-studio#3689
2021-01-27 11:33:53 -08:00
Georges Basile Stavracas Neto 036012d329 build-aux: Add Flatpak manifest
Add a new com.obsproject.Studio.json file containing the
dependencies and permissions required by OBS Studio.

RFC: https://github.com/obsproject/rfcs/pull/21
2021-01-18 15:33:54 -08:00
Matt Gajownik 95c4db3bc6 CI: Fix CEF version for both Linux & macOS 2021-01-17 23:55:18 +11:00
Colin Edwards 410c60e799 CI: Fix cef version in full build 2021-01-08 23:00:17 -06:00
PatTheMav ac2e7a4ef2 CI: Force use of system-provided binaries for build script 2021-01-08 22:40:51 -06:00
Ryan Foster 1b215e463c CI: Update Windows dependencies to VS2019 versions 2021-01-08 15:11:15 -05:00
Ryan Foster 5e29ca30e4 CI: Update Windows Qt from 5.10.1 to 5.15.2 2021-01-08 15:11:09 -05:00
Colin Edwards 0fa5dfcd30
Merge pull request #3933 from PatTheMav/macos-cef-texture-sharing
libobs: Add texture sharing support for macOS/OpenGL
2021-01-07 23:03:08 -06:00
PatTheMav 20fb235b8f CI: Remove jack, speex and fdk-aac from default builds for macOS 2020-12-22 04:36:12 -08:00
PatTheMav 61ea6e0247
libobs: Add texture sharing support for macOS/OpenGL 2020-12-18 17:44:03 +01:00
Jim ddc5af2e08
Merge pull request #3805 from PatTheMav/macos-cef-4183
CI: Add necessary changes for CEF 4183
2020-12-18 00:10:17 -08:00
Theodore Dubois fb938c186f CI: Run make with -j$(nproc)
Moar threads for moar cores
2020-12-17 23:58:21 -08:00
Ryan Foster 2ca1521f72 CI: Remove obsolete and unused files
All of these files have been relocated or replaced, so they should be
safe to remove now.
2020-12-17 02:05:49 -05:00
PatTheMav c85bf0fcba
libobs: Add texture sharing support for macOS/OpenGL 2020-12-16 12:56:43 +01:00
PatTheMav ad1b98351c
CI: Add necessary changes for CEF 4183 2020-12-16 12:56:42 +01:00
PatTheMav eafab7d5e9
CI: Add decklink-captions to dylibbundler fixups 2020-11-27 20:56:47 +01:00
PatTheMav 84b2558995
UI: Update macOS app icon 2020-11-13 17:00:05 +01:00
Colin Edwards 7b0d7c6357 Remove BUILD_CAPTIONS build flag 2020-11-02 22:46:55 -06:00
John Boiles 2700db9ff9 Add virtualcam plugin to OBS codebase
Co-authored-by: lvsti <lvsti@users.noreply.github.com>
Co-authored-by: Sebastian Beckmann <beckmann.sebastian@outlook.de>
Co-authored-by: Stefan Huber <sh@signalwerk.ch>
Co-authored-by: Ryohei Ikegami <iofg2100@gmail.com>
Co-authored-by: Colin Dean <colin.dean@target.com>
Co-authored-by: Wolfgang Ladermann <extern.ladermann_wolfgang@allianz.de>
Co-authored-by: Simon Eves <simon.eves@omnisci.com>
Co-authored-by: Colin Nelson <colnnelson@google.com>
Co-authored-by: Yoshimasa Niwa <niw@niw.at>
Co-authored-by: Michael Karliner <mike@modern-industry.com>
Co-authored-by: Jason Grout <jgrout6@bloomberg.net>
Co-authored-by: Alfredo Inostroza <jadenguy@gmail.com>
Co-authored-by: Daniel Kennett <daniel@cascable.se>
Co-authored-by: Gary Ewan Park <gep13@gep13.co.uk>
Co-authored-by: José Carlos Cieni Júnior <cienijr@outlook.com>
2020-10-30 23:36:57 -07:00
Clayton Groeneveld 6af8726c74 linux-v4l2: Add virtual camera output 2020-10-30 02:00:14 -07:00
PatTheMav c16517ca83 CI: Update macOS build script to support alternative build configs
Also adds a tweak to the brew update which _might_ fix Azure CI.
2020-10-23 23:36:07 -07:00
PatTheMav f190a9f7fb CI: Fix Windows artifact issues and housekeeping 2020-10-18 20:12:56 -07:00
pkv a1c3fbee64 CI: Add virtualcam GUID to win builds
Adds the virtualcam GUID to win builds on GH actions and azure.

Co-authored-by: PatTheMav <patthemav+github@gmail.com>
2020-10-10 17:28:22 -07:00
PatTheMav 13c79618aa
CI: Update notarisation process for Github CI 2020-09-10 23:58:46 +02:00
Colin Edwards 7b4f615ff5 CI: Sign and notarize macOS builds on new tags 2020-09-09 21:11:29 -05:00
PatTheMav 4bcfe5e12c
CI: Fix Azure macOS pipeline to use new build script 2020-09-09 18:38:34 +02:00
PatTheMav 6895ffc8fa
CI: Update macOS CLI build script 2020-08-25 12:58:22 +02:00
PatTheMav 12c3d92345
CI: Add QtNetwork to bundle to restore Streamdeck support 2020-08-12 11:20:50 +02:00
PatTheMav 07a899413a
CI: Fix Brew Bundler breaking without prior brew update 2020-07-29 20:30:57 +02:00
Rodney dc0af42f1b
Merge pull request #3091 from derrod/remove-mixer
UI/CI/rtmp-services: Remove Mixer
2020-07-24 20:17:38 +02:00
Ryan Foster 85d58dfefd CI: Disable Python on macOS
Follow-up to 63373a8fd7
and 2c60aa2abe (PR #3203).
2020-07-23 01:10:29 -04:00
jpark37 2c60aa2abe CI: Disable Python for Mac PR automation 2020-07-22 20:31:59 -07:00
derrod b67a238b7c CI: Remove Mixer cmake variables 2020-07-22 07:47:12 +02:00
PatTheMav 68d4df9180
CI: Disable building OBS with Python scripting support on macOS 2020-07-16 19:23:20 +02:00
PatTheMav 28d8ca3323
CI: Add fix for macOS builds failing on push for Azure CI 2020-07-15 15:25:36 +02:00
PatTheMav d94709d945
CI: Update build script to use pre-built SWIG and QT dependencies 2020-07-10 01:01:32 +02:00
Colin Edwards 35088e0d9e libobs: Add sample unit tests leveraging cmocka 2020-06-25 15:21:58 -07:00
PatTheMav e9bc9e6995
CI: Quick fix to cover pre-installed Homebrew dependencies for macOS 2020-06-25 00:42:21 +02:00
Jim b1d03ae367
Merge pull request #2890 from PatTheMav/macos-build-scripts
CI: Add all-in-one macOS build script
2020-06-21 07:09:30 -07:00
Kurt Kartaltepe de74ea8ad9 CI: Require VLC in CI builds, Fix VLC
Previously VLC was downloaded but was skipped since it could not be
found. This sets the VLCPath to ensure it is found.
2020-05-21 19:32:39 -07:00
PatTheMav 6df8dcd960
CI: Add all-in-one macOS build script 2020-05-08 23:43:12 +02:00
PatTheMav 78db95049a
CI: Update Github Actions with caching and macOS improvements 2020-05-06 18:27:53 +02:00
Colin Edwards 1ea9943a09 CI: Update macOS deps to fix lua 2020-04-26 18:30:53 -05:00
PatTheMav 1bada2d8e7
CI: Fix Azure Pipelines macOS runs 2020-04-24 03:43:51 +02:00
PatTheMav 24e4a256f7 CI: Add main Github Actions workflow for branch pushes and PRs 2020-04-19 04:07:28 +02:00
Colin Edwards 7247a80b3c
CI: Add freetype dep on osx 2020-04-15 23:37:07 -05:00
Colin Edwards 7366b45392 CI: Rewrite new deps paths in obs-ouputs.so 2020-04-09 22:29:41 -05:00
Colin Edwards 8b6f6d1c85 CI: Move clang format check into a seperate github workflow 2020-04-09 21:26:41 -05:00
Colin Edwards 921a742966
Merge pull request #2617 from RytoEX/update-macos-deps
CI: Update macOS dependencies
2020-04-07 14:51:16 -05:00
Colin Edwards de6643b8ea CI: Update dependencies on macOS 2020-04-07 14:06:54 -05:00
Ryan Foster 00c1513890 CI: Update macOS dependencies
* Update VLC from 3.0.4 to 3.0.8
* Update Sparkle from 1.20.0 to 1.23.0
2020-04-02 04:00:51 -04:00
Colin Edwards f0fe107515 CI: macOS use qt 5.14.1 2020-03-04 21:48:26 -06:00
Colin Edwards 91d5a9c895 CI: Fix some macOS build settings 2020-03-03 20:20:12 -06:00
David Baker dc17171617 CI: Fix case of PlugIns directory
'PlugIns' is normal for MacOS and whatever is generating qt.conf
(macdeployqt?) is using 'PlugIns', so this both builds and generates
an app that works on case insensitive filesystems but fails to load
on case sensitive filesystems.

I haven't tested building the installer, only modifying the
qt.conf in the installed copy of OBS.app.

Fixes https://github.com/obsproject/obs-studio/issues/2302
2020-02-28 17:28:59 +00:00
Clayton Groeneveld 0b33df9b2f CI: Build CEF on Linux 2020-02-25 22:38:12 -06:00
Jim faf1535ad5
Merge pull request #2422 from cg2121/remove-ci-script
CI: Remove unused Linux script
2020-02-23 00:19:46 -08:00