Commit Graph

15683 Commits

Author SHA1 Message Date
derrod f89ad4bee5 obs-outputs: Fix file splitting overshooting when b-frames are used
I discovered while testing that the first split would always be one GOP
too long (e.g. 1m2s instead of 1m) due to the fact that b-frames and
negative start DTSes were not accounted for.

This is now fixed by setting the start_time to the nonzero negative DTS
produced for the first packet. Additionally, a small tolerance of 1 ms
was also added to account for rounding issues present in the first GOP.
2026-08-21 14:33:06 -04:00
derrod 575c77f19d obs-outputs: Do not drop last packet when flushing Hybrid file
Originally, before file splitting was introduced, I made the choice to
simply ignore the last frame in the packet queue of the muxer, because
frame N+1 is required to properly determine the duration and I figured
nobody would notice if their recording is one frame short.

However, when using frame splitting this would result in the last frame
before the split being dropped. To fix this, we can simply reuse the
previous sample's duration for the final sample in a file. Since OBS
only does CFR, they should all be identical anyway.
2026-08-21 14:33:06 -04:00
jcm 6c6adac9c9 mac-capture: Use 64RGBAHalf pixel format for screen capture when available 2026-08-21 13:58:36 -04:00
jcm f1f95b218b libobs-opengl: Support texture creation from IOSurface using RGBA64Half 2026-08-21 13:58:36 -04:00
Nick von Kaenel f40cf8dd72 frontend: Scale simple output recording audio bitrate by channel count
The recording audio bitrate was hardcoded to 192 kbps regardless of
channel layout. For a 5.1 mix this yields ~32 kbps per channel which is
very low quality. Scale proportionally from the stereo reference (192
kbps) using the active channel count, snapping to the closest bitrate
supported by the selected encoder (AAC or Opus).

Stereo recordings are unchanged (192 * 2 / 2 = 192 kbps).
2026-08-21 13:14:46 -04:00
Warchamp7 dfad5c86f6 frontend: Ensure pending profile changes are saved 2026-08-21 12:43:30 -04:00
tytan652 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
Richard Stanway e86c7e501e frontend: Abort if obs-transitions failed to load
The frontend UI assumes transitions are always available and crashes if
none are present. Resolving the crashes resulted in a completely broken
UI, so it's safe to assume that transitions are a core requirement for a
working OBS.

Crash reports indicate that obs-transitions is failing to load for some
users, so we should handle the case where no transitions load and abort
with an error instead of crashing.
2026-08-20 22:41:07 -04:00
Warchamp7 080b8afcf7 frontend: Add info notices to theme files 2026-08-20 22:15:11 -04:00
Penwywern 19a1eff8d3 win-capture: Reorder capture method dropdown 2026-08-20 21:41:32 -04:00
Penwywern e6f6487d7b win-capture: Change capture methods name 2026-08-20 21:41:32 -04:00
Warchamp7 0043697fc5 frontend: Remove native widget property 2026-08-20 19:22:01 -04:00
WarmUpTill a07884d752 obs-frontend-api: Fix repeated preview en-/disables not working 2026-08-20 18:54:10 -04:00
Penwywern f6933c9639 frontend: Don't read unloaded module in source toolbar 2026-08-20 18:25:04 -04:00
Penwywern 5cecae04f2 frontend: Ensure source type exists before creating toolbar 2026-08-20 18:25:04 -04:00
Penwywern 4cc9c4466c libobs: Ensure module exists before getting locale string 2026-08-20 18:25:04 -04:00
FiniteSingularity b790a32b2e libobs: Fix file filter for save file path widget 2026-08-20 17:55:08 -04:00
derrod 6d22a9a7f0 docs: Add deprecation notice for source hiding 2026-08-20 17:26:22 -04:00
derrod cc6c7629fd libobs: Deprecate source hiding 2026-08-20 17:26:22 -04:00
derrod 782a15aaf9 frontend: Remove superfluous hidden check 2026-08-20 17:26:22 -04:00
Warchamp7 3bf06991a5 frontend: Fix SourceButton rename handler 2026-08-20 16:56:10 -04:00
derrod 8c86ed05d4 frontend: Add Encoder availability check 2026-08-20 16:16:59 -04:00
Ryan Foster 1bf1379faa libobs: Update version to 32.2.2 2026-08-14 16:57:12 -04:00
Warchamp7 14e3dae77f frontend: Fix spacer in permissions dialog 2026-08-10 17:48:54 -04:00
Warchamp7 f5b6d8da12 frontend: Update forms to fully qualified enums 2026-08-10 17:48:54 -04:00
Warchamp7 4abbcf0b6d frontend: Update invokeMethod to use functions 2026-08-10 16:27:32 -04:00
Ryan Foster 220a16378f CI: Remove support for Ubuntu 24.04 2026-08-07 14:12:38 -04:00
Richard Stanway 88de106cff frontend, plugins: Remove PreferSystem32Images mitigation
This process mitigation flag is inherited by child processes and applies
to load-time DLL resolution, pushing the application's own directory
below the system directories. If there are system-installed copies of
dependent DLLs such as FFmpeg, those get loaded when OBS is updated as
the updater and subsequent relaunch of OBS inherit the mitigation.

As we use SetDefaultDllDirectories, this mitigation is less important,
the proper fix would be to use /DEPENDENTLOADFLAG to protect load-time
import resolution.
2026-08-04 17:19:45 -04:00
Ryan Foster d3972603e5 CI: Update minimum macOS version to 26 for building
Match requirements set in CMake.
2026-08-04 17:01:23 -04:00
Ryan Foster 55c3c07d52 CI: Update macOS deployment target to macOS 13
Qt 6.11 only supports macOS 13+. It does not support macOS 12, and OBS
Studio will fail to launch on macOS 12 as a result. We should reflect
that with our deployment target.

https://doc.qt.io/qt-6.11/supported-platforms.html
2026-08-04 15:59:21 -04:00
jcm b6f854c73b mac-virtualcam: Suppress deprecation warnings in DAL module
This line, along with the entire DAL plugin itself, should be removed
when the macOS deployment target is raised to 14 or above.
2026-08-04 15:59:21 -04:00
Ryan Foster 651bd1e9bf CI: Update brew unconditionally
Should resolve some issues we've seen on CI lately.
2026-08-04 15:21:40 -04:00
Ryan Foster 0052d024fd libobs: Update version to 32.2.1 32.2.1 2026-07-24 17:49:25 -04:00
Richard Stanway e2e0bfc8fc win-capture: Log hook DLL install / update errors
We suspect users hit errors updating the system-wide hook files even if
the file is not in use, but without logging we have no way to know for
sure. This commit adds additional logs. Not logging source paths
anywhere is intentional to avoid wide char to utf-8 issues making this
more complicated than it needs to be - the source will always be the OBS
install dir regardless.
2026-07-24 17:31:49 -04:00
Ryan Foster 74579d8452 CI: Increase number of update deltas generated for macOS to 5
The previous increase from 1 to 3 deltas has an acceptable time cost on
CI. Further increase it from 3 to 5.

This should somewhat improve the update experience on macOS for users
not on the most recent previous version of OBS Studio.
2026-07-24 12:12:44 -04:00
Richard Stanway d7a6a8e1b7 win-capture: Resolve inject helper and hook path to absolute paths 2026-07-24 11:40:08 -04:00
Warchamp7 7546be7266 frontend: Fix default thumbnail positioning 32.2.0 2026-07-21 14:07:32 -04:00
jcm 01e68ca6ad frontend: Fix deprecated header order in Add Source dialog 2026-07-20 16:03:54 -04:00
Warchamp7 0218aa658f CI: Disable fail-fast for Ubuntu builds 2026-07-17 16:19:19 -04:00
Ryan Foster 4675b12bcd CI: Increase number of update deltas generated for macOS
This should somewhat improve the update experience on macOS for users
not on the most recent previous version of OBS Studio.
2026-07-17 14:48:44 -04:00
Warchamp7 f730063da3 frontend: Adjustments to Add Source window 32.2.0-rc2 2026-07-16 14:33:56 -04:00
Warchamp7 6750a6e9f5 frontend: Change source window button label 2026-07-16 14:33:56 -04:00
Warchamp7 a9bcb4f9f8 frontend: Update recent sources text 2026-07-16 14:33:56 -04:00
tytan652 71550823f7 build-aux: Update Flatpak to 2026-07-15 deps
- Backport Qt fix for QTBUG-146665
2026-07-16 14:13:04 -04:00
Ryan Foster 507de81364 CI: Update deps to 2026-07-15 release
Notable Changes:
 * deps.qt: Backport fix for QTBUG-146665

Fix a bug that causes right-click to not work for disabled items in the
source list. This is fixed on the Qt 6.11 branch and in 6.12.0-beta1,
but we've backported the patch for now.
2026-07-16 13:50:10 -04:00
Richard Stanway 9d38a93831 frontend: Add Image SAFER to DLL blocklist
More useless "security" software to try to prevent screenshots that
installs global hooks and kernel drivers. Crash reports indicate that
their hook attaches to and subsequently crashes OBS.
2026-07-14 15:12:13 -04:00
derrod f7e4fba19f frontend: Add defunct Twitch Soundtrack plugin to DLL blocklist 2026-07-14 13:47:07 -04:00
Hernán R ca937366c1 rtmp-services: Update Piczel.tv ingest servers 2026-07-11 14:49:10 -04:00
Ryan Foster 0aefedcb14 CI: Provide GitHub token for gh usage
The GitHub CLI requires a token or it will fail.
2026-07-11 14:25:51 -04:00
jcm 8a5dab518b mac-capture: Don't capture cursor for macOS Audio Capture sources 2026-07-10 15:10:44 -04:00