100 Commits
Author SHA1 Message Date
tytan652andRyan Foster 71ef44f06e cmake: Require MbedTLS 3 and exclude 4 or later
Until the codebase is updated to support it, CMake will explicitly search
for version 3 that is supported by the codebase.
2026-08-21 15:00:09 -04:00
tytan652andRyan Foster c568ee4969 linux-pipewire: Forbid screencast source duplication
Each instance holds a unique session with a unique restore token.
Which both can not be duplicated.
2026-08-20 23:13:55 -04:00
tytan652andRyan Foster 71550823f7 build-aux: Update Flatpak to 2026-07-15 deps
- Backport Qt fix for QTBUG-146665
2026-07-16 14:13:04 -04:00
tytan652andRyan Foster 74fd272db6 build-aux: Update Flatpak to 2026-06-26 deps
- Update FFmpeg to version 8.1.2
2026-06-30 12:58:51 -04:00
tytan652andRyan Foster 873eea74e3 frontend: Explicitly set plugin manager linkage to nlohmann_json 2026-06-19 18:20:23 -04:00
tytan652andRyan Foster 381d4ba2f4 build-aux: Update Flatpak to 2026-06-06 deps
- Update nv-codec to n13.0.19.0
- Update FFmpeg to 8.1
- Update qrcodegen-cmake to v1.8.0-cmake4
- Update libdatachannel to v0.24.2
  - Update plog to version 1.1.11
- Update Qt to 6.11.1
- Update libvpl to version 2.16.0
- Update vpl-grpu-rt to version 26.1.5
- Update ECM to version 6.26.0
2026-06-08 16:09:33 -04:00
tytan652andRyan Foster 60533db7c7 CI: Add local exceptions to flatpak-builder-lint
For some reason the action can no longer check if the URL generated in
the metainfo is reachable.
So to avoid keeping CI failing, local exceptions rule are
added.

Unfortunately it requires to keep a copy of exceptions already submitted
to Flathub.
2026-03-08 11:48:16 -04:00
tytan652andRyan Foster 0d1f61b04b linux-pipewire: Fix camera framerate listing
The SPA format (pixelformat) was compared with a libobs video format
value.

Also removes the SPA format support check since at this point it already
has been done while listing formats.
2026-01-23 10:57:10 -05:00
tytan652andRyan Foster c9bbe81d53 frontend: Add vcs-browser to metainfo
flatpak-build-lint warns to add it.
2026-01-15 14:40:53 -05:00
tytan652andRyan Foster 4cfcfc8c35 linux-pipewire: Make camera framerate non-mandatory
Formats can be without any framerate options.
2026-01-14 14:25:27 -05:00
tytan652andRyan Foster 916a50c83d build-aux,CI: Update Flatpak to 2026-01-09 deps
- Upgrade to Freedesktop 25.08
- Update libvpl to version 2.15.0
- Update vpl-gpu-rt to version 25.3.4
2026-01-10 18:38:08 -05:00
tytan652andRyan Foster 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
tytan652andRyan Foster 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
tytan652andRyan Foster c142571d5c frontend: Cleanup Qt GuiPrivate linkage
Remove unneeded linkages and guard needed ones for Qt versions earlier
than 6.9.0.
2025-12-17 15:04:49 -05:00
tytan652andRyan Foster b6524fef5a CI: Prepare more space for Flatpak jobs 2025-11-26 13:50:31 -05:00
tytan652andRyan Foster a9002811ad CI: Update Flatpak action
https://github.com/flatpak/flatpak-github-actions/pull/231
2025-09-19 14:51:41 -04:00
tytan652andRyan Foster 9b2662117a cmake: Remove library compat symlink on Linux 2025-09-04 16:29:17 -04:00
tytan652andRyan Foster e0aa7c2943 Revert "cmake: Avoid breaking ABI through major version bump on Linux"
This reverts commit 129d4f2f3f.
2025-09-04 16:29:17 -04:00
tytan652andRyan Foster 551f203499 Revert "cmake: Use fixed SOVERSION everywhere"
This reverts commit cc36ccd07d.
2025-09-04 16:29:17 -04:00
tytan652andRyan Foster 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
747f67e150 frontend: Do not enable crash log upload without log file
Co-authored-by: PatTheMav <PatTheMav@users.noreply.github.com>
2025-09-02 15:28:33 -04:00
tytan652andRyan Foster ec447243c5 libobs: Add Flatpak commit logging
This can allow to determine the origin of a Flatpak build.
2025-08-22 20:21:36 -04:00
tytan652andRyan Foster ffcc3acd9d frontend: Replace transition duration spinbox direct access 2025-08-22 16:48:23 -04:00
tytan652andRyan Foster d22ddfd395 frontend: Reduce reliance on transition indexes 2025-08-22 16:48:23 -04:00
tytan652andRyan Foster 2962770813 frontend: Replace transitions combobox direct access 2025-08-22 16:48:23 -04:00
tytan652andRyan Foster 11562b6696 frontend: Remove some shadowing 2025-08-22 16:48:23 -04:00
tytan652andRyan Foster 2fe0385d13 linux-pipewire: Add aspect ratio to video capture format name 2025-08-22 14:34:28 -04:00
tytan652andRyan Foster 3cce28a1d3 linux-pipewire: Add framerates to video capture format name 2025-08-22 14:34:28 -04:00
tytan652andRyan Foster c11253bb08 linux-pipewire: Use list-based format selector for video capture
Negotiation is now made with the user selected format.

Also fixes a typo in the name of a structure.
2025-08-22 14:34:28 -04:00
tytan652andRyan Foster 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
tytan652andRyan Foster 570f2641f4 cmake: Add a finder for SIMD Everywhere 2025-08-21 15:22:08 -04:00
tytan652andRyan Foster 363874b40f build-aux: Remove unused Flatpak static permission 2025-08-19 17:02:40 -04:00
tytan652andRyan Foster 24597a7b8e Revert "linux-pipewire: Fix 10- and 16-bit captures"
This reverts commit 4dfd0b31e4.

Also adds a FIXME comment.
2025-07-25 15:30:52 -04:00
tytan652andRyan Foster 523ddeec9c build-aux: Use rebuilt CEF on Linux with backported API on Flatpak 2025-07-12 14:16:49 -04:00
tytan652andRyan Foster bdebea3d85 frontend: Enable browser hw accel toggle under Linux 2025-05-24 14:20:21 -04:00
tytan652andRyan Foster b65ee89451 frontend: Use winId for Wayland surface in Qt 6.9+
As of Qt 6.9, winId return a wl_surface pointer which allows us to move
away completely from QPlatformNativeInterface.

https://github.com/qt/qtwayland/commit/32f9b4d
2025-05-13 14:40:31 -04:00
tytan652andLain 5ed5863556 libobs: Fix module load in relocatable scenario 2025-05-03 16:34:25 -07:00
tytan652andRyan Foster 1bf84a6901 cmake: Replace Xcb CMake finders with ECM 2025-04-28 13:30:26 -04:00
tytan652andRyan Foster 190389ec11 cmake: Replace Wayland CMake finder with ECM 2025-04-28 13:30:26 -04:00
tytan652andRyan Foster e53293a785 cmake: Use Extra CMake Modules on Linux 2025-04-28 13:30:26 -04:00
tytan652andRyan Foster a368f05d01 CI: Use Flatpak action upstream
The fork has been merge with upstream.

https://github.com/flathub-infra/flatpak-github-actions/issues/17
2025-04-22 18:11:27 -04:00
tytan652andRyan Foster 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
tytan652andRyan Foster 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
tytan652andRyan Foster 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
tytan652andRyan Foster ecb0381b8e obs-ffmpeg: Fix deprecation with FFmpeg 7.1 2025-01-24 17:38:24 -05:00
tytan652andRyan Foster a0e4e37341 libobs-opengl: Avoid trying to allocate 0 byte on Linux 2024-12-20 16:23:10 -05:00
tytan652andRyan Foster f03280c4fd CI: Disable Flatpak bundling on publish
It is not needed to publish on a Flatpak repo and the push workflow
already generates a bundle.
2024-12-10 15:49:19 -05:00
tytan652andRyan Foster e845729dfd libobs/util: Improve inhibit portal detection on Linux
Check for a property of the inhibit portal rather than just the portal
D-Bus name that does not indicate if the specific portal is available.
2024-12-09 18:05:17 -05:00
tytan652andRyan Foster dfc3a69c52 obs-ffmpeg: Avoid setting negative bitrate for lossless audio codec
Since FFmpeg 7.1 a check was added to disallow pre-initializing encoder
with a negative bitrate.

https://github.com/FFmpeg/FFmpeg/commit/74385dd496bdcda9a6e029fabf4946f2234a0d13
2024-11-20 13:27:38 -05:00
tytan652andRyan Foster 52a0486c4c cmake/plugins: Enable -Wswitch on GCC
This warning is already enabled for Clang which causes issue for things
that are usually built with MSVC or GCC (e.g. non-macOS plugins).

obs-nvenc switch warning is also fixed in this commit.
obs-qsv11 has switch warning set to not become errors.
2024-10-25 13:01:33 -04:00
tytan652andRyan Foster 2e075f7513 cmake: Fix target_add_resource ARGN support on Linux
This fixes how the AUTHORS file is installed.
2024-10-24 15:08:37 -04:00
tytan652andRyan Foster 03bc6d7cb4 build-aux: Remove CEF stripping workaround
This cause issues in Flatpak IDE like GNOME Builder.
2024-10-22 15:08:10 -04:00
tytan652andRyan Foster 2aedaaec51 win-update: Remove legacy CMake file 2024-10-07 15:02:23 -04:00
tytan652andLain 641d651e55 linux-pipewire: Avoid trying to allocate 0 byte 2024-10-05 16:50:31 -07:00
tytan652andRyan Foster f4c4f09075 libobs/util: Improve inhibit functions on Linux
Avoid creating the screensaver inhibitor thread when another method has
been applied.

Make inhibition unavailable in a Flatpak if portal is not available.
2024-10-04 16:38:03 -04:00
tytan652andRyan Foster 42670ab4e3 plugins/test: Remove legacy CMake remnants
Some legacy files were missed in 72428ccd97
2024-10-03 17:32:08 -04:00
tytan652andRyan Foster 26d275223a libobs-opengl: Relax texture format copy check
SRGB and non-SRGB formats are compatible for copy.
2024-09-12 15:35:46 -04:00
tytan652andRyan Foster 31385006d5 Remove legacy_check CMake macro
The macro was not removed in 72428ccd97
waiting for submodules to be be updated to a commit where their legacy
code path is removed.
2024-09-11 13:24:39 -04:00
tytan652andRyan Foster 129d4f2f3f cmake: Avoid breaking ABI through major version bump on Linux
Freeze SOVERSION to 30, this number is to be incremented when a clean
break is wanted.
2024-09-10 00:41:26 -04:00
tytan652andRyan Foster 8963d25dd2 build-aux: Update Flatpak modules
* 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
tytan652andRyan Foster 34735be094 UI: Fix Qt UIC warning in settings UI 2024-08-31 12:06:38 -04:00
tytan652andRyan Foster 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
tytan652andRyan Foster 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
tytan652andRyan Foster 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
tytan652andRodney c7b0c63d01 obs-nvenc: Fix building with nvcodec 12.2 2024-08-12 23:40:17 +02:00
tytan652andMatt Gajownik 3b266fec22 UI,docs: Send a custom event to the dock widget when closing 2024-08-04 10:18:59 +10:00
tytan652andRyan Foster 5e5865b716 frontend-tools: Avoid initializing the scene switcher on Wayland
The Linux implementation of the automatic scene switcher is X11-only and
the design itself of the feature is incompatible with how Wayland works.
2024-07-29 22:26:15 -04:00
tytan652andRyan Foster 7d578c5cfb plugins: Enable QSV only on x86_64 architecture
Intel stack is only completely buildable on x86_64 architectures.
2024-07-29 18:11:29 -04:00
tytan652andRyan Foster 8480660bf8 cmake: Add architecture support to add_obs_plugin
Also add formatting support to the function
2024-07-29 18:11:29 -04:00
tytan652 4214050cda UI: Remove obs-ui-support
The remaining files are only used by the UI, so those are restored in
the obs-studio target
2024-07-27 07:38:36 +02:00
tytan652 f051fdd75e UI,shared: Move OBSPropertiesView to its own directory 2024-07-27 07:38:36 +02:00
tytan652 390429c838 frontend-tools: Remove unused source files in legacy path 2024-07-27 07:38:36 +02:00
tytan652 5eb10135da UI,shared: Move SliderIgnoreScroll to its own directory 2024-07-27 07:38:36 +02:00
tytan652 5e25041491 UI,shared: Move VScrollArea to its own directory 2024-07-27 07:38:36 +02:00
tytan652 f5c25c66af UI,shared: Move OBSPlainTextEdit to its own directory 2024-07-27 07:38:36 +02:00
tytan652 48f139729f UI,shared: Move Qt Wrappers to its own directory 2024-07-27 07:38:36 +02:00
tytan652 4882db4ec4 UI: Move QTToGSWindow outside of Qt wrappers 2024-07-27 07:38:36 +02:00
tytan652 2a53015ad7 deps,shared,plugins: Move opts-parser to shared folder 2024-07-27 07:38:36 +02:00
tytan652 f5e2f15d28 deps,shared,frontend-tools: Move obs-scripting to shared folder 2024-07-27 07:38:36 +02:00
tytan652 ade04f4f1c deps,shared,obs-ffmpeg: Move media-playback to shared folder 2024-07-27 07:38:36 +02:00
tytan652 4b0b71ad5f deps,shared,win-capture: Move ipc-util to shared folder 2024-07-27 07:38:36 +02:00
tytan652 fa0ffff7c0 deps,shared,obs-outputs: Move happy-eyeballs to shared folder 2024-07-27 07:38:36 +02:00
tytan652 f293a6edd1 deps,shared,plugins: Move file-updater to shared folder 2024-07-27 07:38:36 +02:00
tytan652 7a5b914086 Add shared folder in gitignore and format scripts 2024-07-27 07:38:36 +02:00
tytan652andRyan Foster 5545674e6d CI: Fix flatpak-builder-lint action
- Fix for loops syntax
- Manage jq empty output
2024-07-09 17:10:48 -04:00
tytan652andRyan Foster 508f9c2e3c obs-scripting: Refactor Lua C paths 2024-06-14 17:34:14 -04:00
tytan652andRyan Foster b16516a3fa Revert "cmake: Fix script plugin path on Linux with CMake 3"
This reverts commit 7a4cb085ba.
2024-06-14 17:34:14 -04:00
tytan652andRyan Foster c677bac875 UI: Avoid allowing to override provided themes 2024-06-10 17:01:21 -04:00
tytan652andRyan Foster 4b187ed38c cmake: Copy shared library soname file to rundir on Linux
Soname files are required since 1d8c377240
2024-06-10 16:32:11 -04:00
tytan652andRyan Foster 7a4cb085ba cmake: Fix script plugin path on Linux with CMake 3 2024-06-08 17:08:25 -04:00
tytan652andRyan Foster e4ae149278 linux-capture: Fix module prefix with CMake 3 2024-06-06 14:23:15 -04:00
tytan652andRyan Foster 116107bc86 UI: Fix Qt platform override in CMake 3
This override is still needed until Qt minimum version requirement is
increased to at least 6.3.0.

ui-config.h.in and CMake 2 are modified to avoid USE_XDG redefinition in
CMake 3.
2024-06-05 18:33:47 -04:00
tytan652andRyan Foster 1d8c377240 cmake,UI: Fix SOVERSION on Linux 2024-06-05 18:16:45 -04:00
tytan652andRyan Foster 3840ea0275 UI: Remove replayBufferButton and vcamButton theme IDs
Those IDs were used on buttons that were programatically added to the
controls dock, now those buttons are always present inside the UI
file with their own object name.

The use of theme IDs can be replaced by their object names.
2024-06-05 17:39:54 -04:00
tytan652andRyan Foster 511385891c UI: Separate controls dock from the main window 2024-06-05 17:39:54 -04:00
tytan652andRyan Foster eed5578e4c UI: Remove setStreamText lambda
Avoid tangling controls dock stream button to OBSBasic with a lambda.
2024-06-05 17:39:54 -04:00
tytan652andRyan Foster 178205257e UI: Set system tray text explicitly
Avoid using controls dock buttons as a source for text for system tray
elements.
2024-06-05 17:39:54 -04:00
tytan652andRyan Foster d23b65a2bf UI: Track streaming state in OBSBasic
Avoid using controls dock buttons for streaming state. Use signals and
OBSBasic member variables instead.
2024-06-05 17:39:54 -04:00
tytan652andRyan Foster 9093275336 UI: Track recording state in OBSBasic
Avoid using controls dock buttons for recording states. Use signals and
OBSBasic member variables instead.
2024-06-05 17:39:54 -04:00
tytan652andRyan Foster cb024a0696 UI: Use connection with modeSwitch button 2024-06-05 17:39:54 -04:00