15697 Commits
Author SHA1 Message Date
Ruwen HahnandRyan Foster cd95b3bf49 frontend: Add dynamic bitrate support to multitrack video
The bitrate interpolation points are sent in JSON configuration and
need to be forwarded to `create_video_encoders()`. Also remove the
`HandleIncompatibleSettings()` handler because there are no longer any
incompatible settings.
2026-06-05 14:11:55 -04:00
Ruwen HahnandRyan Foster 4c97c62ccf obs-outputs: Implement multitrack dynamic bitrate 2026-06-05 14:11:55 -04:00
Ruwen HahnandRyan Foster dd1e93f1ab libobs: Refactor encoder_group access
Also reconfigure all grouped encoders on the same frame.
2026-06-05 14:11:55 -04:00
PatTheMavandRyan Foster b8360d7261 cmake: Update Xcode version requirement on macOS
In preparation for macOS 27 and to fix existing build errors when
Swift 6 (rather than Swift 6.1 is used) to build the project, force use
of Xcode 26.5 for macOS builds.
2026-06-04 15:57:25 -04:00
PatTheMavandRyan Foster 2e2612dc95 CI: Update macos runners and used Xcode version
In preparation for macOS 27 and to fix existing build errors when
Swift 6 (rather than Swift 6.1 is used) to build the project, force use
of macOS 26 runners as well as Xcode 26.5 for CI.
2026-06-04 15:57:25 -04:00
Ryan Foster 2598e33a1e CI: Update deps to 2026-06-02 release
Notable Changes:
 * deps.macos: Update Sparkle to 2.9.2
 * deps.qt: Update Qt to 6.11.1 for Windows
 * deps.qt: Update Qt to 6.11.1 for macOS
2026-06-04 14:40:27 -04:00
Ryan Foster fc95b0a83b CI: Update deps to 2026-05-21 release
Notable Changes:
 * deps.ffmpeg: Update AOM to 3.13.1
 * deps.windows: Add VST3 SDK
 * deps.macos: Add VST3 SDK
 * utils.zsh: Enable debug symbols for ObjC
 * deps.ffmpeg: Update nv-codec to n13.0.19.0
 * deps.ffmpeg: Update AMF to 1.5.0
 * deps.ffmpeg: Update FFmpeg to 8.1
 * deps.macos: Update qrcodegen-cmake to v1.8.0-cmake4
 * deps.macos: Update Sparkle to 2.9.1
 * deps.qt: Update Qt to 6.10.3 for Windows
 * deps.qt: Update Qt to 6.10.3 for macOS
 * deps.ffmpeg: Enable PDBs for FFmpeg builds on Windows
 * deps.ffmpeg: Update libdatachannel to v0.24.2
2026-06-03 16:37:51 -04:00
Wu HaoyuandRyan Foster 151097d3bd frontend: Fix a dereference of nullptr
`outputResolution` may not be editable and outputResolution->lineEdit()
can return `nullptr` which causes crash.
2026-06-02 15:15:34 -04:00
Warchamp7andRyan Foster 686ee75a05 frontend: Set up theme watcher during init 2026-05-28 16:09:19 -04:00
John BowersandRyan Foster 4d6d9a5166 frontend: Slight change to multi-track text
Change text to indicate that enhanced broadcasting/MT does not have
to configure multiple encodes, although it often/usually does.
2026-05-27 12:45:53 -04:00
Ryan Foster 4726edd113 frontend: Fix updates failing when configured without What's New
The updates config folder is used to download files tied to update
branch selection and application updates. If this folder does not exist,
the downloads fail. Tying this folder creation to What's New, which also
uses this folder, seems incorrect, since it is also uses for application
updates. Remove the ifdef guard for folder creation.
2026-05-26 17:07:05 -04:00
Zhang BoyangandRyan Foster 97ee7fa7cb cmake: Fix dependency download logic
Previously, if download failure occurred or interrupted by Ctrl-C, the
broken file is not removed. This is true for the first case because
"message(FATAL_ERROR ..." stops cmake and "file(REMOVE ..." is never
reached. After that, if cmake is run second time, SHA256 verification is
skipped and the broken file will be used.

This patch fixes this by using a temporary intermediate file. The file
data is downloaded into a temporary file first, then the temporary file
is atomically renamed to destination.

Error checking of download status is also improved. The if clause now
checks error code against zero more strictly, according to cmake's
documentation.
2026-05-26 15:41:10 -04:00
jpark37andRyan Foster 290904c47d obs-filters: Add filter to compose SDR into HDR
Provide ability to use power of 2.4 to simulate BT.1886 for Rec. 709.
2026-05-26 15:16:00 -04:00
Ryan FosterandGitHub 14a664a4e9 Merge pull request #13449 from RytoEX/update-actions
CI: Update GitHub actions
2026-05-26 14:44:38 -04:00
Ryan Foster aafd466423 CI: Update sign-windows commit 2026-05-26 14:19:50 -04:00
Ryan Foster 037100a281 CI: Update yuzutech/annotations-action to v0.6.0 2026-05-26 14:18:40 -04:00
Ryan Foster 5b1a4fc8c2 CI: Update peter-evans/create-pull-request to v8.1.1 2026-05-26 14:18:40 -04:00
Ryan Foster 51462e7f22 CI: Update obsproject/obs-crowdin-sync
Update both the download and upload actions.
2026-05-26 14:18:40 -04:00
Ryan Foster 6dfd961099 CI: Update korelstar/xmllint-problem-matcher 2026-05-26 14:18:40 -04:00
Ryan Foster d8dc0df278 CI: Update google-github-actions/auth to v3.0.0 2026-05-26 14:18:40 -04:00
Ryan Foster 8167a74c60 CI: Update github/codeql-action/upload-sarif to v4.35.5 2026-05-26 14:18:40 -04:00
Ryan Foster 5ecc2dd514 CI: Update flatpak/flatpak-github-actions to v6.7
Update both flatpak-builder and flat-manager.
2026-05-26 14:18:40 -04:00
Ryan Foster 0e9c744a4a CI: Update cloudflare/wrangler-action to v4.0.0 2026-05-26 14:18:40 -04:00
Ryan Foster 065c1e2b77 CI: Update Homebrew/actions/setup-homebrew 2026-05-26 14:18:40 -04:00
Ryan Foster 9774be6c1c CI: Update CyberAndrii/steam-totp
Update to remove node20 deprecation warnings.

Also update the source of the action since the name has changed.
2026-05-26 14:18:40 -04:00
Ryan Foster bc17e3dc5f CI: Update CyberAndrii/setup-steamcmd
Update to remove node20 deprecation warnings.

Also update the source of the action since the name has changed.
2026-05-26 14:18:40 -04:00
Ryan Foster bf0c56d9e7 CI: Update actions/upload-artifact/merge to v7.0.1 2026-05-26 14:18:40 -04:00
Ryan Foster 34e3cfe99e CI: Update actions/upload-artifact to v7.0.1 2026-05-26 14:18:40 -04:00
Ryan Foster 11330693e9 CI: Update actions/download-artifact to v8.0.1 2026-05-26 14:18:40 -04:00
Ryan Foster 9ba3b7357c CI: Update actions/checkout to v6.0.2 2026-05-26 14:18:40 -04:00
Ryan Foster 3f505216ee CI: Update actions/cache/save to v5.0.5 2026-05-26 14:18:40 -04:00
Ryan Foster e3a0540a3a CI: Update actions/cache/restore to v5.0.5 2026-05-26 14:18:40 -04:00
Ryan Foster 49adc4d463 CI: Update actions/cache to v5.0.5 2026-05-26 14:18:40 -04:00
Ryan Foster 716784f02b CI: Update actions/attest-build-provenance to v4.1.0
Also, change from actions/attest-build-provenance to actions/attest. The
former is just a wrapper around the latter now.
2026-05-26 14:18:40 -04:00
d412d64ef9 plugins: Fix build issues in Xcode 26.4
Replaced implicit type conversion within macOS plugins (mac-capture,
mac-syphon, mac-videotoolbox, mac-virtualcam) with explicit type
conversions to clear compile errors with Apple Clang 21.0 and Xcode
26.4.

Co-authored-by: PatTheMav <patthemav+github@gmail.com>
Co-authored-by: jcm <6864788+jcm93@users.noreply.github.com>
2026-05-26 13:39:02 -04:00
ExeldroandRyan Foster 854948b8df frontend: Add copy paste functions 2026-05-22 17:25:23 -04:00
tfoandRyan Foster 17fc299b74 win-dshow: Fix CreateFileW return value check in virtualcam filter
CreateFileW returns INVALID_HANDLE_VALUE on failure, not NULL.
The previous check would always evaluate to true on failure,
causing ReadFile and CloseHandle to be called on an invalid
handle.
2026-05-22 16:36:52 -04:00
Tarun EandRyan Foster fdca38a63e image-source: Include .webp files in directory source
Previously, the Image Slide Show source skipped *.webp files when
adding images via 'Add Directory'. This update ensures that .webp
files are now correctly included.
2026-05-22 16:07:02 -04:00
Asahi LinaandRyan Foster 57291eb9b0 libobs-opengl: Reject external-only modifiers
These modifiers cannot be used with the standard texture sampling
codepaths, so we need to reject them to avoid invalid GL operations.

Closes obsproject/obs-studio#12498
2026-05-22 15:33:32 -04:00
ThrowandRyan Foster a13632c0d9 libobs: Correctly handle duplicator failure 2026-05-21 15:20:57 -04:00
tfoandRyan Foster bd96ff53dd obs-nvenc: Fix resource destruction order
The NVENC session was destroyed before its child resources
(textures, surfaces) were cleaned up, causing resource cleanup
calls to operate on an invalid session handle.

Reorder destruction to free all registered resources before
destroying the encoder session.
2026-05-21 14:29:54 -04:00
Warchamp7andRyan Foster a0a480dc80 frontend: Add spacing to properties hint icon 2026-05-19 16:48:52 -04:00
Dennis SädtlerandRyan Foster 888a5160fa libobs: Adjust obs_canvas_get_video_info() to get video info from mix
This aligns obs_canvas_get_video_info() and obs_get_video_info() and
ensures the frame-rate is correct rather than returning the
potentially stale data stored in the canvas itself.
2026-05-19 15:24:09 -04:00
Warchamp7andRyan Foster 638f885e5d frontend: Fix thumbnail update rate 2026-05-19 13:36:52 -04:00
Joel BethkeandLain 5dacbb63fb Update CONTRIBUTING.md
Clarify AI usage in our project.
2026-05-13 14:53:42 -07:00
Dennis SädtlerandRyan Foster 1ecea56817 libobs: Properly fix canvas video reset/restore 2026-05-08 16:28:19 -04:00
Dennis SädtlerandRyan Foster 8fb81caf0a Revert "libobs: Restore only canvases that have video info"
This reverts commit 9a62529f02.
2026-05-08 16:28:19 -04:00
Warchamp7andRyan Foster 855b8a9d6f frontend: Add minimum width to spinboxes 2026-05-08 14:35:15 -04:00
Richard StanwayandRyan Foster cd7562791f frontend: Apply process mitigation policies for Windows
DEP: Enable DEP as it's still opt-in even on Windows 10. No OBS code or
plugins should be executing data as code and this is an important
mitigation against stack-based buffer overflows.

ASLR: Enable and force ASLR. This makes it harder for any potential
exploits to use fixed offsets into OBS or Windows DLLs to run gadgets.

Extension Points: Disable extension points. These are typically used for
system-wide code injection, and we have generally had trouble with
various things injecting into OBS and causing issues.

Handle Check: Enable strict handle checks when running debug builds.
This will raise an exception if we operate on an invalid handle,
something that should hopefully not ever happen in the current code.
2026-05-08 14:08:12 -04:00
Sebastian BeckmannandRyan Foster 77fb5b4bc7 libobs: Disallow overwriting the crash handler
Setting a new crash handler overwrites the existing one. This is not
desirable.
2026-05-08 13:04:27 -04:00