Commit Graph
15319 Commits
Author SHA1 Message Date
PatTheMav 97a498d67a CI: Replace ccache with Xcode compile cache 2026-01-13 15:34:10 -05:00
PatTheMav c10fd25aea cmake: Remove ccache support from Xcode builds 2026-01-13 15:34:10 -05:00
Hoshino Lina 2b53fe0e65 frontend: Fix QSystemTrayIcon and QMenu delete order
QSystemTrayIcon holds a non-owning pointer to the QMenu, so it needs to
be deleted first.

Fixes: #12948
2026-01-12 17:48:14 -05:00
PatTheMav 754a46d43f Remove buildspec file from project 2026-01-12 11:18:05 -05:00
PatTheMav ee8e34b3e3 CI: Remove buildspec usage from Windows builds 2026-01-12 11:18:05 -05:00
PatTheMav ee374486a2 CI: Remove buildspec usage from Zsh scripts 2026-01-12 11:18:05 -05:00
PatTheMav 5e1cd6057a CI: Replace buildspec in Appcast update action
Updates the sparkle-appcast action to use Sparkle version information
from the CMake preset file instead of the obsoleted buildspec file.
2026-01-12 11:18:05 -05:00
PatTheMav 3e7fbf69a7 cmake: Update buildspec system to use preset file
Updates code for dependency management to use "vendor" information from
the CMake preset file.
2026-01-12 11:18:05 -05:00
PatTheMav bf85aed2d5 cmake: Add dependency information to preset
Custom build information can be added as "vendor" information to
CMake preset files. This allows arbitrary JSON data to be added to the
file, making the separate (custom) buildspec file obsolete.
2026-01-12 11:18:05 -05:00
Exeldro cdb7add0b0 frontend-tools: Add lua registered source to module 2026-01-12 07:55:58 -05:00
tytan652 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
Matt Gajownik cf733a6002 obs-browser: Update version to 2.26.4
obsproject/obs-browser@f5f64b1 - Update version to 2.26.4
obsproject/obs-browser@a710c96 - Update translations from Crowdin
2026-01-10 01:02:43 -05:00
Matt Gajownik a5f0988933 Update translations from Crowdin 2026-01-10 01:02:43 -05:00
PatTheMav 1fc234c841 build-aux: Update gersemi formatting script 2026-01-09 15:47:12 -05:00
PatTheMav 4625dda66d cmake: Apply gersemi 0.25 formatting 2026-01-09 15:47:12 -05:00
PatTheMav 003bfcb65d CI: Update gersemi formula
As gersemi exists as a core Homebrew formula now, CI needs to use a
version-pinned formula to avoid sudden format check failures due to
possible "breaking changes" between gersemi versions.
2026-01-09 15:47:12 -05:00
Gary Holmes 6076ada562 obs-outputs: Fix chapter ts when using file splitting
Chapters take their timestamp from the total video frame time. With
file splitting enabled in recording settings, the time offset since
the start of the current split was made needs to be considered before
submitting chapters to the muxer.
Change to subtract start_time of the current output from the chapter
timestamp.
2026-01-09 15:26:05 -05:00
Dennis Sädtler 4d7776fc3b libobs: Restore original video_t for encoders when GPU scaling is used 2026-01-08 22:37:24 -05:00
cg2121 ee1539614a frontend: Add more source undo/redo actions
This adds undo/redo actions for scale filtering, blending mode,
blending method, deinterlacing mode and deinterlacing field order.
2026-01-08 21:37:02 -05:00
Warchamp7 6fa1a35ad4 frontend: Update transform dialog 2026-01-08 21:12:30 -05:00
Warchamp7 c01a9bea49 frontend: Create AlignmentSelector widget 2026-01-08 21:12:30 -05:00
cg2121 8c946e792a frontend: Make sure all scene item properties are copied
Scale filtering, show/hide transitions and private settings were
not copied when copying scene items.
2026-01-08 20:18:13 -05:00
Warchamp7 92a83e4c4c frontend: Sync Preview/Program size and positioning 2026-01-08 19:58:07 -05:00
Dennis Sädtler de82ca9293 frontend: Refactor OBSBasic::Save to only save frontend canvas scenes/groups 2026-01-08 15:03:19 -05:00
Service Checker f4aaa5f041 rtmp-services: Remove defunct servers/services 2026-01-06 11:36:55 -05:00
Warchamp7 13a132b486 frontend: Disable dock animations 2026-01-06 07:36:49 -05:00
Exeldro dc7c8cfb48 frontend: Move transition preview button to button box 2026-01-06 07:02:52 -05:00
Warchamp7 407944a27c frontend: Rearrange default dock positions 2025-12-19 14:43:44 -05:00
Warchamp7 6a64053256 libobs: Remove "using namespace std" from headers 2025-12-18 18:16:31 -05:00
Sebastian Beckmann f6a56227eb frontend: Remove implicit capture of "this" using "="
Implicitly capturing "this" with the capture default "=" is deprecated
with C++20. We fix this by either explicitly passing this, or by copying
the required members manually.
While this exposes some rather expensive copies like the QList
selectedItems in OBSBasic_Preview, it doesn't introduce them ("=" copies
implicitly).
2025-12-18 17:30:42 -05:00
Sebastian Beckmann 25f4fc9e70 frontend: Replace "=" capture with "this"
Implicit capture of 'this' with a capture default of '=' is deprecated
in C++20.

# Conflicts:
#	frontend/settings/OBSBasicSettings.cpp
#	frontend/settings/OBSHotkeyEdit.cpp
#	frontend/settings/OBSHotkeyWidget.cpp
2025-12-18 17:30:42 -05:00
Sebastian Beckmann 4ad3df3af8 coreaudio-encoder: Use canonical format enum instead of bitwise or
The enum members being getting the bitwise or here are from different
enums, and bitwise operations on members from different enums are
deprecated in C++20. kAudioFormatFlagsNativeFloatPacked is the
equivalent value (see its defintion), but removes the manual bitwise or.
2025-12-18 17:30:42 -05:00
Sebastian Beckmann f4bb61f472 cmake: Disable char8_t on macOS with C++20
This is already disabled for other platforms, but the clang options
aren't applied on macOS.

Amends 8d33da1fab.
2025-12-18 17:30:42 -05:00
Sebastian Beckmann 2c7afd36ef mac-avcapture/legacy: Move comparison operator up
std::find is used in enumerate_frame_rates already, so the equality
operator is needed there. Until C++17 this is defined implicitly, but
since C++20 it's needed explicitly.
2025-12-18 17:30:42 -05:00
Warchamp7 e7e32689a8 frontend: Use palette for Light theme audio mixer 2025-12-18 15:26:37 -05:00
Warchamp7 c8e74c9dec frontend: Round display size for projectors 2025-12-17 21:43:44 -05:00
tytan652 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
tytan652 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
Tarulia 1290898c74 plugins: Set missed default bitrates to 6000 kbps
efca325 already increased the default bitrate for various encoders.
However, some were missed and this commit fills the gap:

* Mac-VT
* OpenH264
* Texture AMF
* VAAPI
2025-12-17 21:12:59 -05:00
Warchamp7 cea2d6938a frontend: Remove Source from source names 2025-12-17 20:34:05 -05:00
Sebastian Beckmann f80d35fa4a frontend: Remove "using namespace std" from headers
This is very dangerous as it propagates down everywhere the headers are
included in.
2025-12-17 18:51:35 -05:00
Dennis Sädtler caf1de1595 shared/bpm: Fix NAL type for HEVC user data SEIs 2025-12-17 18:02:19 -05:00
Dennis Sädtler 659163e0e8 libobs: Fix NAL type for HEVC caption SEIs 2025-12-17 18:02:19 -05:00
Sebastian Beckmann a9634db561 frontend/cmake: Enable Qt strict mode
Qt strict mode disables APIs deemed "'suboptimal' or 'dangerous'" [1]
and "clearly undesirable" [2] by Qt that will be removed in the long
term.
Usages of the APIs in OBS have been removed in the previous commits, and
by setting this flag we keep ourselves from using them again.
The versioning works in a way where e.g. a new addition to this in 6.9
would only be disabled if at least 0x060900 is set. By setting 0xFF0000,
we're effectively disabling any APIs that are deemed to be bad in any
future Qt version (up to 255).
While this could lead to OBS not being buildable against bleeding edge
Qt, it also means that it will be noticed early. Should the disabled API
turn out to be too complex to remove, the value can be downgraded to the
last working one then.

[1] qt/qtbase@3a6c8e02b6
[2] qt/qtbase@f9163ae7a8
2025-12-17 16:35:45 -05:00
gxalpha 5129612b6c frontend,shared: Replace and disable contextless connect calls
# Conflicts:
#	frontend/OBSApp.cpp
2025-12-17 16:35:45 -05:00
gxalpha 876806bbf5 frontend: Replace and disable QString to QUrl casts 2025-12-17 16:35:45 -05:00
gxalpha 9b1d1493ab frontend,shared: Replace and disable QByteArray to char * casts 2025-12-17 16:35:45 -05:00
Sebastian Beckmann 63d7f7fb55 frontend: Replace #defines in YoutubeApiWrappers 2025-12-17 16:35:45 -05:00
Sebastian Beckmann f9aec57091 frontend: Avoid unnecessary QString<->const char * conversions
SetComboByName, SetComboByValue and SetInvalidValue all pass their
parameters to Qt functions which only take QStrings. As a consequence,
we have cases we'd convert a QString to a const char* to call these
functions, only for the functions to implicitly convert them back into
QStrings. We can avoid this by passing QStrings directly. In cases where
we did actually pass const chars, the (implicit) conversion now just
takes place earlier.
2025-12-17 16:35:45 -05:00
Warchamp7 a4642cc532 frontend: Increase media playback slider fidelity 2025-12-17 15:56:27 -05:00