Commit Graph
14698 Commits
Author SHA1 Message Date
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.
31.0.0-beta1
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
Ryan Foster 109f64c446 shared/obs-hook-config: Update graphics hook to 1.8.4 2024-10-04 17:53:45 -04:00
Ryan Foster 5aaac2f0f9 libobs: Update version to 30.2.3 2024-10-04 16:38:29 -04:00
tytan652 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
Suman Manjunath 9b8fa0f0ca UI: Enable first-party YouTube Chat features in OBS
Unlock the full feature set of the YouTube Chat dock in OBS by removing
custom scripting/CSS logic. Enable the signed-in experience for live
streaming content creators while also sharing login credentials with the
YouTube Control panel dock.

This will allow OBS users to utilize features _already_ supported in the
YouTube Chat plugin, such as

* creating polls
* managing Q&A sessions
* a rich emoji set in the input panel
* emoji fountains
* moderation tools

and many more. These features are available to users who are logged-in
to YouTube Chat and/or the YouTube Control panel.
2024-10-04 16:14:38 -04:00
Suman Manjunath 492309c504 UI: Use shared cookie manager for YT Control Panel
Use the cookie manager shared by service integration browser docks for
YouTube Control Panel.

This will enable users of the YouTube Chat panel have a better (creator
facing) experience for observed chat message latency, for those users
who sign-in to the YouTube Control Panel or YouTube Live Chat.

NOTE: This commit does not have any migration logic for existing
logged-in users of YTCP, they will need to sign-in again. Based on usage
stats, this is not going to affect a large fraction of OBS users.
2024-10-04 16:14:38 -04:00
Alex Luccisano 39f0ed6e75 shared/bpm: Fixed crash when using Stream Delay
BPM initialization occurs with the first call to the
`bpm_inject()` callback function. When Stream Delay is
active, there is a case where the first call might never
happen, specifically if a user stops the stream with the
discard delay option before streaming begins. In such a
case OBS will crash due to an uninitialized mutex being
referenced in `bpm_destroy()`.

Use `pthread_once()` in both the `bpm_inject()` callback
and `bpm_destroy()` to ensure BPM initialization has occurred.
2024-10-04 15:49:44 -04:00
Warchamp7 cb026964b0 UI: Replace themeID and style hints with class property 2024-10-04 15:20:49 -04:00
gxalpha 71775e3619 libobs: Assure large enough buffer in dstr_from_cfstring
Per the documentation of CFStringGetCString, the buffer provided must be
large enough not just for the string itself, but also for a NUL
terminator. This space for the NUL terminator is currently ignored, and
we just get lucky that CFStringGetMaximumSizeForEncoding often
dramatically overestimates the space required. However, it is possible
to actually hit the maximum with the string itself (for example by using
strings that contain exclusively Chinese characters such as "我"), in
which case the conversion fails. Adding the extra byte for the NUL
terminator fixes this.
At this point, we can also safely assert that our max_size is larger
than zero, silencing a clang analyzer warning that now is no longer
valid.
2024-10-04 13:36:09 -04:00
tytan652 42670ab4e3 plugins/test: Remove legacy CMake remnants
Some legacy files were missed in 72428ccd97
2024-10-03 17:32:08 -04:00
gxalpha 4420594729 libobs: Remove unused is_in_bundle() method 2024-10-03 17:09:54 -04:00
Dennis Sädtler 37ab500f93 UI: Set NV12 as preferred format for multitrack video encoders 2024-10-03 16:47:32 -04:00
Dennis Sädtler a4bda61015 libobs: Do not attempt to reconnect if stop event is set 2024-10-03 16:11:20 -04:00