Commit Graph

15062 Commits

Author SHA1 Message Date
derrod 966f086c96 obs-outputs: Use packet time callback for frame-accurate chapter markers 2025-08-20 16:07:51 -04:00
Huts, Roman 345700b199 obs-ffmpeg: Add Pre-Analysis checkbox for AMD encoder 2025-08-20 15:15:08 -04:00
Huts, Roman 4fb20ee9ad obs-ffmpeg: Update default AMD encoding settings 2025-08-20 15:15:08 -04:00
derrod a7d5721c2c frontend: Remove channel change signal handler from transform dialog 2025-08-20 13:57:36 -04:00
Exeldro 033c740d13 obs-transitions: Fix stinger showing count for update during transition 2025-08-20 13:34:57 -04:00
cg2121 33e8a23386 frontend: Auto release OBSDataArray objects
Makes sure that all obs data array objects in cpp files are using
auto release RAII wrappers.
2025-08-20 12:59:53 -04:00
derrod 91e90817d2 obs-outputs: Fix tkhd/mvhd box version with 64-bit timestamps 2025-08-19 23:37:02 -04:00
jcm 4e7152bd70 mac-capture: Set minimum frame interval in capture initialization 2025-08-19 22:52:20 -04:00
Dennis Sädtler ef057dd3af frontend: Fix and simplify initialization of supported_codecs 2025-08-19 18:44:49 -04:00
Sebastian Beckmann 28b0ca5187 mac-avcapture: Remove unneeded macOS SDK ifdef
We require the macOS 15 SDK since 8f1bcc1, so this check is unneeded.
2025-08-19 18:17:56 -04:00
PatTheMav 4c912358a9 cmake: Remove enforced architectures for macOS builds
Ideally CMAKE_OSX_ARCHITECTURES should not be set automatically within
the project but should exclusively be a cache or environment variable
provided by the developer.

This would also match the requirement mentioned by the CMake
documentation that the value should be set before the first project()
call.

If this variable is not set, the Xcode generator would default to the
native platform of the host, but the buildspec system as well as the
"add_obs_plugin" function need a local "architecture" to work, so
use "CMAKE_HOST_SYSTEM_PROCESSOR" instead if CMAKE_OSX_ARCHITECTURES
was not provided.
2025-08-19 17:59:22 -04:00
tytan652 363874b40f build-aux: Remove unused Flatpak static permission 2025-08-19 17:02:40 -04:00
Sebastian Beckmann a7d68842fb frontend: Don't mark OBSHotkeyEdit as read-only on macOS
Recent styling changes mean read-only QLineEdits no longer visually take
focus. There are better ways to remove the input cursor, and if we do
that that should probably be all operating systems anyways.
2025-08-19 16:41:27 -04:00
gxalpha 9dcef85e69 shared/icon-label: Split into header and source file
Splits the IconLabel widget header into a header and source file. The
source uses the moc_icon-label include to prevent the moc from being
included in the global mocs_compilation (as described in 5eb04cd).
2025-08-19 16:08:06 -04:00
gxalpha a64956d8ee shared: Rename icon-label.hpp to IconLabel.hpp
Renames the icon-label.hpp header to IconLabel to follow the new
convention of files being named the same as the class they contain.
2025-08-19 16:08:06 -04:00
Sebastian Beckmann fbf08cc944 build-aux: Add test directory to clang-format file list 2025-08-19 15:16:40 -04:00
Sebastian Beckmann 268e30a52b frontend: Remove unused macOS window icons
Commit [1] originally made a differentiation between the operating
systems for the window icon. However, on macOS the window icon is only
respected for the main window (and used for the entire app, as windows
themselves don't have icons), and that got removed in [2]. This means
that this code doesn't actually do anything anymore, and thus should be
removed.

[1] 9ac92f61be
[2] 4afafaac6d
2025-08-19 14:48:06 -04:00
Sebastian Beckmann 28ca612d9e frontend: Remove unused OBSContextBarProxyStyle
All usages of OBSContextBarProxyStyle were removed in [1], so the class
is completely unused now. It should be deleted.

[1] 8dcfae9a39
2025-08-19 14:25:37 -04:00
Rob Howell 2b613f40b4 media-playback: Fix null pointer dereference 2025-08-04 15:39:26 -04:00
shiina424 1af512f323 frontend: Fix invisible scrollbar in Light theme 2025-08-04 14:04:08 -04:00
shiina424 d9317a38a2 frontend: Fix invisible scrollbar in Rachni theme 2025-08-04 14:04:08 -04:00
PatTheMav 78243d790d CI: Handle possible error condition in gersemi branch of format script 2025-08-01 19:02:04 +02:00
PatTheMav ab01c406c2 cmake: Update formatting introduced by gersemi 0.21.0 2025-08-01 19:02:04 +02:00
PatTheMav 4f2d752fa7 cmake: Remove outdated and incorrect code comment in osconfig module 2025-08-01 19:02:04 +02:00
PatTheMav 94744e6672 cmake: Remove settings from gersemirc only supported via command-line 2025-08-01 19:02:04 +02:00
Ryan Foster 7778070cbd libobs: Update version to 31.1.2 31.1.2 2025-07-25 16:55:48 -04:00
Ryan Foster e757039106 CI: Update obs-crowdin-sync action 2025-07-25 16:14:00 -04:00
Marco 46ce91e582 libobs: Start video output even if there is no mix
This fixes a change in PR 11605 that breaks Decklink video outputs.
get_mix_for_video() returns NULL for those outputs, causing
start_raw_video() to return before connecting the output.
2025-07-25 15:49:19 -04:00
tytan652 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
PatTheMav c54d4c51bd CI: Fix failures of analyze workflow runs due to GitHub policy change
GitHub introduced a policy change on 2024-05-06 which deprecated
support for SARIF files that contain multiple runs for the same tool.
2025-07-25 14:26:46 -04:00
Ivan Molodetskikh fb09098fd7 linux-pipewire: Ensure the release point is always signaled
Since video rendering happens on a separate thread from PipeWire buffer
ingestion, it may happen that two buffers are ingested in quick
succession without the rendering thread ever getting to them. Since,
prior to this commit, the release sync point is only "primed" (set to
signal in the future) only on the video rendering thread, this results
in the buffer being returned to PipeWire's pool without anything ever
signaling the release point, effectively blocking it from ever getting
reused in the future. This quickly clogs up the buffer pool and leaves
only one buffer to circulate between the screencast source and OBS.

This commit adds a flag tracking whether the release point had been
primed. If, when ingesting a new PW buffer, the old buffer's release
point hadn't been primed, that means the video rendering thread never
got to that buffer, so the release point is immediately signaled,
marking the buffer reusable by the screencast source.
2025-07-25 13:55:31 -04:00
Ivan Molodetskikh a7de3f4bde linux-pipewire: Dup syncobj fds
PipeWire format renegotiation runs in parallel with video rendering.

When the stream format is renegotiated, PipeWire removes the existing
buffers and closes the syncobj file descriptors. At the same time, the
video rendering thread may try to import the (already closed) syncobj
acquire fd, and hang on waiting for the fence to become available.

This is not a problem for the dmabuf fd because it's imported into a
texture right away, which doesn't disappear when PipeWire closes the fd.

This commit adds duping to the syncobj fds so that they too remain open
as long as the rendering thread may access them.
2025-07-25 13:55:31 -04:00
Ivan Molodetskikh 7092bc17db linux-pipewire: Require Gio 2.76
Subsequent commits use g_clear_fd() added in GLib 2.76.
2025-07-25 13:55:31 -04:00
Yuri Victorovich 18ee961210 libobs-opengl: Make some includes unconditional
Move 3 headers out from the Linux-specific section.
Without these headers functions like open, close, drmXx aren't found.

* open requires <fcntl.h>
* close requres <unistd.h>
* drmXx requires <xf86drm.h>
2025-07-21 17:06:14 -04:00
Warchamp7 6a7de7ed4f frontend: Fix settings scrollbar size 2025-07-21 14:57:23 -04:00
Warchamp7 3cdc013a56 frontend: Fix progress bar appearance 2025-07-18 16:56:40 -04:00
JiangXsong bd6c4713bb linux-v4l2: Avoid stopping capture on AVERROR(EAGAIN)
v4l2-decoder: continue sending frame to codec
if avcodec_receive_frame() returns AVERROR(EAGAIN)
2025-07-18 16:08:24 -04:00
Dennis Sädtler a45bbe134f frontend: Do not set maximum_video_tracks if user has set it to "Auto" 2025-07-18 13:07:37 -04:00
Ryan Foster 63206664e0 CI: Update sphinx-publish-action commit
The generate-docs action started failing, presumably because it is using
Debian Buster. Update the pinned commit for the third-party
totaldebug/sphinx-publish-action to hopefully fix this.
2025-07-16 13:41:52 -04:00
Damian Marcin Szymański 9331fb7dac frontend: Fix build failure with Clang 20+ in OBSCanvas
Canvas is a move-only type without a copy constructor. Since C++17
requires types stored in std::optional to be copy-constructible unless
explicitly allowed, Clang 20+ emits an error when attempting to
instantiate std::optional<Canvas>.

While GCC allows this as an extension, Clang enforces the standard
more strictly.

This PR replaces std::optional<Canvas> with std::unique_ptr<Canvas> to
resolve the build error with Clang 20+ while keeping functional
behavior identical.

Tested with GCC 15.1.0 and Clang 20.1.7.

Co-Authored-By: Ryan Foster <ryan@obsproject.com>
2025-07-15 14:29:05 -04:00
tytan652 523ddeec9c build-aux: Use rebuilt CEF on Linux with backported API on Flatpak 2025-07-12 14:16:49 -04:00
Ryan Foster 7e894a56f4 CI: Add checkout to fix gh CLI usage
The gh CLI utility will fail without a git checkout.
2025-07-12 13:46:14 -04:00
Ryan Foster a32b3f9f6d libobs: Update version to 31.1.1 31.1.1 2025-07-11 21:35:41 -04:00
Ryan Foster e8a77fd0f2 build-aux: Revert libsrt to v1.5.3
With libsrt v1.5.4, we saw issues when using multiple Media Sources
ingesting SRT. If one would shut down or fail, then all SRT Media
Sources would stop working. While there has been no confirmation that
this also occurs on Linux, out of an abundance of caution, revert libsrt
to v1.5.3, which was used for OBS Studio 30.1, 30.2, and 31.0.
2025-07-11 20:35:49 -04:00
Ryan Foster ac019ba810 build-aux: Update Flatpak module for mbedTLS to v3.6.4
MbedTLS v3.6.2 has an issue with fragmented TLS 1.3 handshakes, causing
some RTMPS streams to fail to connect. Update to mbedTLS v3.6.4 where
this is fixed.
2025-07-11 20:35:49 -04:00
Ryan Foster d35b586d52 CI: Update deps to 2025-07-11 release
Fixes RTMPS streaming not working in some cases.

Fixes SRT ingest failing in some cases.

Notable changes:
 * deps.ffmpeg: Update mbedTLS to 3.6.4
 * deps.ffmpeg: Revert libsrt to v1.5.2 with patches
2025-07-11 19:10:34 -04:00
Ryan Foster ec5c2f3f34 obs-browser: Update version to 2.25.3
82092ce - Require extra info for Linux hardware accel
bdabf83 - Update version to 2.25.3
2025-07-11 18:35:49 -04:00
Ryan Foster 1cf48d2e5c CI: Use rebuilt CEF on Linux with backported API
CEF 127 lacks CEF_OSR_EXTRA_INFO, which can cause resizing a
hardware-acclerated browser source to crash its GPU renderer process.
Use a rebuilt CEF 127 with CEF_OSR_EXTRA_INFO backported from CEF 133+.
2025-07-11 18:35:49 -04:00
Warchamp7 d268a19b4a frontend: Avoid recreating YouTube dock 2025-07-11 17:28:59 -04:00
Ryan Foster 883e9283bf CI: Add GH_TOKEN to fix usage of GitHub CLI 2025-07-07 19:40:19 -04:00