Commit Graph

14610 Commits

Author SHA1 Message Date
Ed Maste
d9b1b8213a CI: Enable WebRTC on FreeBSD
Install www/libdatachannel and leave ENABLE_WEBRTC at the default of ON.
2024-10-22 16:11:08 -04:00
tytan652
03bc6d7cb4 build-aux: Remove CEF stripping workaround
This cause issues in Flatpak IDE like GNOME Builder.
2024-10-22 15:08:10 -04:00
derrod
e8968ba715 obs-nvenc: Force at least 4 b-frames when using UHQ tune 2024-10-21 12:18:05 -04:00
PatTheMav
072102701c UI: Use custom property on QAction to retain profile or collection name
On some platforms (e.g. KDE) accelerators are automatically added to
the text properties of QActions, thus changing the value returned by
text().

Thus we cannot rely on the text to always represent the same text that
we set originally and have to explicitly store and retrieve the value
as a property.

Coincidentally this not only fixes possible issues on other platforms,
but is also architecturally more correct.
2024-10-21 11:51:33 -04:00
PatTheMav
918fe6171d UI: Update order of profiles and scene collections in their menus
The old method to update the profile menu iterated over the directory
entries of the profile directory in the order provided by the operating
system.

The system calls used for this explicitly state that the order of items
is "undefined" but seems to have followed a case-insensitive
alphabetical order on Windows, an order which users have come to expect.

The new code uses a std::map to store discovered profiles and scene
collections, which is ordered by key and with std::string used for keys
this means a lexicographical sorting of keys which is case-sensitive.

To restore the old behavior, profiles and scene collections need to be
added to their respective menus sorted by case-insensitive order, which
has to be done manually before adding the items.
2024-10-21 11:51:33 -04:00
Ed Maste
39b91d8875 UI: Restore XDG config path update for FreeBSD
Restore move_to_xdg from commit ba02e065fe to migrate from pre-XDG
config path $HOME/.obs-studio on FreeBSD.
2024-10-18 18:19:19 -04:00
Ed Maste
c928fac339 libobs: Remove non-USE_XDG code
That is, leave only the code that was under USE_XDG.  Previously the
Linux CMake build defined USE_XDG unconditionally, while it was not set
by the FreeBSD build.

The non-USE_XDG code was broken, and FreeBSD should follow the XDG
convention anyway (in particular, storing config files typically under
$HOME/.config/obs-studio).  Defining USE_XDG in the os-freebsd.cmake
files would leave the non-USE_XDG code unused anywhere, so instead just
remove it.
2024-10-18 18:19:19 -04:00
Ryan Foster
b18b1346a0 obs-browser: Update version to 2.24.4
910617b - Wait for CEF close event for docks
a76b4d8 - Update version to 2.24.4
2024-10-18 17:44:01 -04:00
Ryan Foster
05d2ee1b6f obs-browser: Update version to 2.24.3
c31adce - Bump nlohmann/json required
aa8953c - clang-format: Increase column limit from 80 to 120
b89a128 - Fix blank Dev Tools window title
4dafce8 - cmake: Fix CEF minimum version
f459def - CI: Port check-changes action from obs-studio
3773257 - build-aux: Add clang-format scripts
0f4af02 - CI: Port run-clang-format action from obs-studio
5823260 - CI: Port check-format workflow from obs-studio
be035cd - CI: Remove old clang-format workflow and shell scripts
362b9a3 - clang-format: Update to clang-format 17.0.3
941c48b - CI: Port appropriate workflows to call check-format
fc946f2 - Replace obs-websocket-api copy with CMake target
31fd647 - Update version to 2.24.3
2024-10-17 15:26:39 -04:00
Warchamp7
6ca0a88f0e UI: Remove toolButton styling 2024-10-16 13:49:34 -04:00
Warchamp7
7b052cba45 UI: Replace toolButton property with style class 2024-10-16 13:49:34 -04:00
Ed Maste
5dccefdc82 CONTRIBUTING.rst: Update for 120 column limit
Commit a1fbf1015f updated .clang-format and existing code for 120
columns, so change Coding Guidelines to match.
2024-10-16 13:29:47 -04:00
Ed Maste
b24c5aa26a CI: Bump FreeBSD image to 14.1 2024-10-16 13:01:48 -04:00
derrod
e97d7c10c2 libobs: Fix items in groups using wrong scale reference 2024-10-16 12:24:18 -04:00
derrod
bece05bbc6 libobs: Fix ungrouped transfom calculation in relative mode 2024-10-16 12:24:18 -04:00
Dimitry Andric
94866fbcc5 obs-outputs: Add cast to fix build with Clang 19
Clang 19 has become more strict about mixing different enum types, which
resulted in an error building multimedia/obs-studio on FreeBSD:

/wrkdirs/usr/ports/multimedia/obs-studio/work/obs-studio-30.2.3/plugins
    /obs-outputs/flv-mux.c:659:37: error: bitwise operation between
    different enumeration types ('enum multitrack_type_t' and 'enum
    packet_type_t') [-Werror,-Wenum-enum-conversion]
2024-10-16 11:59:06 -04:00
Ed Maste
b654dba30a UI: Catch error from copy in MigrateGlobalSettings
During development on FreeBSD I encountered an uncaught exception abort
from the copy in MigrateGlobalSettings.  Catch the error and print a
user-facing message:

error: Unable to migrate global configuration - copy failed.
2024-10-16 11:37:22 -04:00
Ryan Foster
edd7a387a4 obs-qsv11: Update minimum VPL version to 2.9
Since we no longer support Ubuntu 22.04, we can bump the minimum VPL
version to 2.9 which is available in Ubuntu 24.04 packages.
2024-10-15 14:52:04 -04:00
PatTheMav
ca4bc1ad36 UI: Fix initialization bug when launching without existing profile
SetupNewProfile is used to create new profiles when OBS is already
running, which requires resetting program state for the new profile.

This function cannot be used to create a new profile as a fallback
for either a non-existing profile or for a fresh installation of OBS
Studio because by the point this is called from OBSBasic::OBSInit, the
runtime modules are not loaded yet and as such no services exist.

Activating the new profile without a profile reset fixes this issue
as the reset will be done explicitly by OBSBasic::OBSInit later.
2024-10-15 14:28:43 -04:00
Ryan Foster
77d74dd0da UI: Set minimum version for nlohmann_json to 3.11
We know this is the minimum version that we require, so we can just fail
during configure if somehow an older version is found.
2024-10-15 13:30:34 -04:00
gxalpha
ba6a6bfdcb UI/themes: Consistently select indicator-mute instead of MuteCheckBox
cb026964b0 changed most instances of
MuteCheckBox as a selector for the button that mutes/unmutes a source in
the mixer to indicator-mute, but left a few instances of the old
selector, especially in variant themes while the base theme got changed.
This lead to competing selections where apparently indicator-mute won
which meant that the variant themes wouldn't override the base.
Changing all instances of MuteCheckBox to to indicator-mute fixes this
and hopefully prevents future uses of MuteCheckBox as a selector
anywhere.
2024-10-11 14:04:27 -04:00
Exeldro
88cd7b70db libobs: Add source profiler to public headers 2024-10-10 17:19:45 -04:00
PatTheMav
3995b4662d UI: Fix crash when providing scene collection or profile via CLI
When a starting scene collection or profile is provided, current code
would crash as the corresponding collections and management functions
do not exist yet (they are tied to OBSBasic, which is not initialized
that early in the program execution).

This change moves the checks for command line arguments into OBSBasic
into the parts responsible for initializing profiles and scene
collections and check for arguments provided via command line there.
2024-10-10 16:38:33 -04:00
PatTheMav
d9d9881789 UI: Fix deletion of scene collection backup on collection deletion
When a scene collection is deleted, the generated backup files should
not automatically be deleted. This was new behavior introduced in OBS
30.0.0.

This change restores the prior behavior.
2024-10-10 16:38:33 -04:00
PatTheMav
a05f5f5009 UI: Fix activation order of profile and scene collections after delete
After a profile or scene collection is deleted, the last item in each
list would have been automatically activated as the new current profile
or scene collection.

This is opposite to prior behavior, which would always select the first
item in the list.

This code restores the prior behavior.
2024-10-10 16:38:33 -04:00
gxalpha
4575a0ecb3 UI/themes: Fix selectors in Yami Light
Amends cb026964b0.
2024-10-10 14:37:02 -04:00
Matt Gajownik
4bc67755d1 UI: Correctly set Yami border radius for buttons in tables 2024-10-10 12:54:55 +11:00
derrod
93533d8e42 CI: Fix rclone env var formatting in Windows Patches action 2024-10-08 18:03:06 -04:00
Ryan Foster
9f425af189 CI: Fix sparkle-appcast comment syntax
Prevent a parsing error on GitHub Actions.
2024-10-08 15:54:38 -04:00
Norihiro Kamae
03d9fee46e shared/opts-parser: Fix crash when no options were given to the parser
When passing just a space, the number of input options becomes 0. In
this case, calling `bmalloc` should be avoided.
2024-10-08 13:53:07 -04:00
Norihiro Kamae
b082e1be33 libobs/graphics: Remove unused source file graphics-magick.c 2024-10-08 13:25:05 -04:00
derrod
746d215453 UI: Avoid path<->string conversion when refreshing profile cache 2024-10-08 12:59:45 -04:00
Exeldro
9e7b51a585 obs-ffmpeg: Fix deadlock on shutting down muxer 2024-10-07 15:16:42 -04:00
tytan652
2aedaaec51 win-update: Remove legacy CMake file 2024-10-07 15:02:23 -04:00
shiina424
cb1a15ecdf UI: Fix locale key for rename profile text 2024-10-07 14:47:48 -04:00
shiina424
b188874487 obs-nvenc: Add missing locale text 2024-10-07 14:27:52 -04:00
test
15cd31fdbd UI: Fix settings mismatch 2024-10-07 14:13:25 -04:00
gxalpha
a251e17557 libobs/util: Crash on bmalloc(0)
As outlined in c5965c8605, bmalloc(0) is
pretty much always a mistake, possibly hiding other bugs.
It's been two years since that commit introduced a warning announcing
that this will crash in a future version of OBS, let's make that happen.
2024-10-07 13:52:22 -04:00
tytan652
641d651e55 linux-pipewire: Avoid trying to allocate 0 byte 2024-10-05 16:50:31 -07:00
Lain
5a1fca9347 linux-capture: Fix potential null pointer dereference
Use dstr_cmp() instead of strcmp() to prevent null pointer dereferences.

This code for this source has way too many pointers.
2024-10-05 16:49:23 -07:00
Lain
089ba29961 libobs/util: Prevent null pointer deref with dstr_cmp
This makes it prevent any null pointer dereferences, and makes it
consistent with the other dstr compare functions.
2024-10-05 16:49:23 -07:00
Kurt Kartaltepe
cc36ccd07d cmake: Use fixed SOVERSION everywhere
We missed a spot when freezing the SOVERSION to 30 after we flipped to
31 causing builds to break.
2024-10-05 14:03:14 -07:00
Translation Updater
e6d9f73736 Update translations from Crowdin 2024-10-05 05:02:27 +00:00
Matt Gajownik
5cd5e736c6 CI: Fix translation download script bugs
- download: Perform download tasks in the correct order
 - download: Don't attempt to commit empty submodule changes
2024-10-05 14:58:30 +10:00
Matt Gajownik
2e6d0d0a52 plugins: Update translations from Crowdin 2024-10-05 14:56:41 +10:00
Matt Gajownik
67b952310c CI: Use correct commit hash for translation download
Previous hash was for the source changes, needed the built action.
2024-10-05 12:39:57 +10:00
Matt Gajownik
91fdbefafb CI: Bump Crowdin Sync to fix translation download 2024-10-05 12:20:16 +10:00
Ryan Foster
5fdc6d216f libobs: Update version to 31.0.0 2024-10-04 18:39:41 -04:00
Ryan Foster
b723736ec9 .git-blame-ignore-revs: Add change from column limit increase 2024-10-04 18:30:06 -04:00
Ryan Foster
a1fbf1015f clang-format: Increase column limit from 80 to 120 2024-10-04 18:19:27 -04:00