5071 Commits

Author SHA1 Message Date
Hernán R
ca937366c1 rtmp-services: Update Piczel.tv ingest servers 2026-07-11 14:49:10 -04:00
jcm
8a5dab518b mac-capture: Don't capture cursor for macOS Audio Capture sources 2026-07-10 15:10:44 -04:00
Matt Gajownik
f2db0972ee Update translations from Crowdin 2026-07-09 14:48:07 -04:00
pkv
a00854666f nv-filters: Remove direct calls to CUDA in Audio FX
The CUDA calls in AUDIO FX were added initially to big a bug on the SDK
side where the SDK functions where not checking the CUDA context.
This led to interference with the VIDEO FX, potentially breaking it.
These bugs have been fixed by the SDK so we don't need anymore these
CUDA calls.

Signed-off-by: pkv <pkv@obsproject.com>
2026-07-01 17:37:45 -04:00
Benedict Etzel
27ac23ef75 win-capture: Add Hearthstone Deck Tracker to compatibility list 2026-06-29 14:53:19 -04:00
Matt Gajownik
b631635a38 win-capture: Build with file descriptor 2026-06-26 15:19:41 -04:00
Matt Gajownik
039d6ebb46 obs-vst: Build with file descriptor 2026-06-26 15:19:41 -04:00
Matt Gajownik
aa33016e28 obs-webrtc: Build with file descriptor 2026-06-26 15:19:41 -04:00
Lordmau5
2b88e617a2 obs-nvenc: Only update Target Quality in CQVBR mode
Previously it was setting the `averageBitRate` value to what is being set in Variable Bitrate rate control mode. However, CQVBR is initialized with a value of `0` and instead Target Quality is being used. This adds a check for the CQVBR mode and if it's set will update the `targetQuality` value, otherwise it will update `averageBitRate`.

Additionally reset `averageBitRate` to 0 if CQVBR is active, and reset `targetQuality` to 0 if it's not in any VBR mode
2026-06-19 14:06:39 -04:00
Ryan Foster
74c106512d obs-websocket: Update to 5.7.4
Changes:
 - forms: Replace implicit lamda captures for C++20
 - websocketserver: Replace implicit lamda captures for C++20
 - Update translations from Crowdin
2026-06-18 16:49:11 -04:00
Ryan Foster
db84905fb1 obs-browser: Update to 2.26.9
obsproject/obs-browser@19b1c96 Replace implicit lamda captures for C++20
obsproject/obs-browser@f76de5f Do not try to create the browser before init
obsproject/obs-browser@68af8e8 Build with Windows file descriptors
obsproject/obs-browser@951cf81 Update translations from Crowdin
obsproject/obs-browser@bdac160 Limit browser dock workaround to impacted Qt versions
obsproject/obs-browser@3f0a2cd Update version to 2.26.9
2026-06-18 16:49:11 -04:00
PatTheMav
cb9b4f119a plugins: Apply clang-format 22 formatting 2026-06-17 15:17:09 -04:00
PatTheMav
b1d9dffbc5 plugins: Force C language for clang-format
Only applies to actual ObjC-based plugins.
2026-06-17 15:17:09 -04:00
PatTheMav
d838e11983 plugins: Force C language for clang-format
Only applies to actual C-based plugins.
2026-06-17 15:17:09 -04:00
Warchamp7
30b63c6849 Update C++ files with braces 2026-06-09 13:41:19 -04:00
Nerixyz
b8f7a1e3b8 cmake: Enable Swift language on macOS 2026-06-08 17:52:56 -04:00
PatTheMav
1829492e6b cmake: Move frontend plugins into main plugins dir
Frontend plugins should not require being placed in the frontend
directory to be built successfully. Indeed they should only depend
on libobs and the obs-frontend-api and thus their source tree should
be able to exist anywhere (even standalone) and the plugin should still
compile successfully (just like any 3rd party plugin).

Thus moving those plugins into the main plugin directory ensures that
they don't require on any "special sauce" within the source tree to
compile.
2026-06-05 16:00:18 -04:00
Richard Stanway
9541600b3d nv-filters: Improve handling of SDK DLL loading 2026-06-05 15:27:30 -04:00
Richard Stanway
e29a640ddd obs-ffmpeg, win-capture: Use better default DLL directory settings 2026-06-05 15:27:30 -04:00
Richard Stanway
76ea10e281 coreaudio-encoder: Avoid using SetDllDirectory, specify full path 2026-06-05 15:27:30 -04:00
Alex Luccisano
83ed914ecf obs-outputs: Use multitrack DBR capability flag
Use the new `OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE` flag when
streaming with multiple tracks, instead of relying on the single-
track `OBS_ENCODER_CAP_DYN_BITRATE` flag. In multitrack cases where
multiple codecs are being used (e.g. mixed AVC and HEVC), all encoders
must support the multitrack capability flag otherwise the dynamic
bitrate (DBR) feature is disabled for the streaming session.
2026-06-05 14:11:55 -04:00
Alex Luccisano
0943ea2cf6 plugins: Apply multitrack dynamic bitrate flag
Enable the `OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE` capability on
the encoders that support it.
2026-06-05 14:11:55 -04:00
Alex Luccisano
b1be50013f obs-ffmpeg: Rework AMF dynamic bitrate change behavior
The `amf_xxx_update()` functions for AVC, HEVC, and AV1 are
unconditionally invoking Flush() and ReInit() even though this is not
required in all situations. Changing the bitrate at least in CBR mode
does not require the flush operation and can result in unaligned IDR
frames across members of an encoder group. Do not flush the pipeline
for CBR bitrate changes; instead, force an IDR to occur with the
bitrate change.
2026-06-05 14:11:55 -04:00
Ruwen Hahn
4c97c62ccf obs-outputs: Implement multitrack dynamic bitrate 2026-06-05 14:11:55 -04:00
John Bowers
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
jpark37
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
andrewsoncha
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
tfo
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 E
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
tfo
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
Exeldro
b1a15af06e image-source: Set minimal size for color source to 1 pixel 2026-05-07 15:03:11 -04:00
jcm
cc0fd86c05 mac-avcapture: Avoid possible bad access on device connect events 2026-05-07 13:24:18 -04:00
Exeldro
b093030106 frontend, obs-filters: Add missing file support for filters 2026-05-07 12:58:16 -04:00
stephematician
403f075a47 linux-v4l2: Fix vcam reset failure
Reverts much of PR #11906 in favor of a different way to detect whether
or not the output capabilities must be reset.

The new approach will contain false positives for which the workaround
is not needed but it won't have negative side effects.
2026-05-07 12:27:46 -04:00
PatTheMav
2954532019 mac-avcapture: Use fallback frame rate by default for new devices
When a new device is selected, a best-possible frame rate is chosen
for the initial configuration of the device. This has to be set in the
source settings, as those are the "source of truth" for the properties
and the device configuration.

The object has to be created explicitly first before setting the
frame rate value. The source then has to be updated explicitly as well
to ensure that the change will be picked up by the next iteration
of the render thread to "tick" the source and thus make it configure
a capture session with the fallback framerate set.
2026-05-06 15:40:55 -04:00
Sebastian Beckmann
cb75098a93 obs-vst: Use v2 of obs_properties_add_button
v1 of obs_properties_add_button will be deprecated soon.
Also fixes UNUSED_PARAMETER calls in the callbacks for parameters that
are not actually unused, and moves the other ones to the top (as in most
of the rest of the project).
2026-05-05 15:45:04 -04:00
Sebastian Beckmann
a759fa5aae mac-syphon: Use v2 of obs_properties_add_button
v1 of obs_properties_add_button will be deprecated soon.
2026-05-05 15:45:04 -04:00
Sebastian Beckmann
de0bc821ff win-dshow: Use v2 of obs_properties_add_button
v1 of obs_properties_add_button will be deprecated soon.
2026-05-05 15:45:04 -04:00
Ryan Foster
3a9cf4adb1 obs-websocket: Update version to 5.7.3
Fix a build issue with Clang 21.
2026-04-01 14:56:27 -04:00
Hoshino Lina
5533a277e4 linux-v4l2: Fix spurious fd closing
Make sure to use the invalid fd -1 when the output is not opened, and
only close valid fds. If fd 0 is closed, then this closes stdin. The
second time this happens, some other important fd will have become fd 0,
breaking something.

This causes random things to break (browser/CEF in reports, but really
it could be anything) as the wrong fds get closed.
2026-03-08 12:12:44 -04:00
Barnabás Pőcze
5d04d51011 linux-pipewire: Fix uninitialized camera resolution access
The use of `SPA_POD_OPT_Rectangle()` means that if the rectangle cannot be
parsed, then no error will be returned. In that case uninitialized variables
will be used. This can happen if the pod object contains e.g. a list of
resolutions (`SPA_CHOICE_Enum`).

Fix that by using `SPA_POD_Rectangle()`, which enforces successful parsing.
2026-03-08 00:09:24 -05:00
Ryan Foster
68984b4a9d obs-websocket: Update version to 5.7.2
Fixed an issue where some sources (inputs) could not be updated.
2026-03-03 22:45:56 -05:00
Warchamp7
36d1dd8fdb obs-websocket: Update version to 5.7.1
New Features:
- Added Canvas support [exeldro]
- `GetCanvasList` request
- `CanvasCreated` event
- `CanvasRemoved` event
- `CanvasNameChanged` event

Bug Fixes:
- Fixed a possible crash on OBS shutdown [exeldro]

Changes:
- Updated translations [WizardCM]
- Various fixes and improvements to Canvas support [tt2468/Warchamp7]
2026-02-27 16:28:14 -05:00
Ryan Foster
9f1423f20e obs-browser: Update version to 2.26.8
obsproject/obs-browser@cda4f1f - Revert custom scheme handler protocol
obsproject/obs-browser@ea04212 - Update version to 2.26.8
2026-02-13 15:19:39 -05:00
Ryan Foster
9a4666e284 obs-filters: Remove unnecessary nvafx-load.h header
This was left behind from 50b0943cec.
2026-02-12 18:13:00 -05:00
Tristan Matthews
c75d7f4095 rtmp-services: Remove defunct STAGE TEN 2026-02-10 14:08:01 -05:00
trilkk
57c37e4adc plugins: Use exact types to avoid clang-19 errors 2026-02-05 16:54:16 -05:00
Ryan Foster
7a75dbe7dc obs-browser: Update version to 2.26.7
obsproject/obs-browser@f93477b - Fix local filepath on POSIX
obsproject/obs-browser@b59127a - Update version to 2.26.7
2026-02-04 17:33:12 -05:00
sravanth simhadri
17d5b3c5fd rtmp-services: Add Sportify 2026-02-03 14:13:43 -05:00
Ryan Foster
3590b1d0d5 obs-browser: Update version to 2.26.6
obsproject/obs-browser@8a45650 - Update local file scheme handler
obsproject/obs-browser@df0330f - Update version to 2.26.5
obsproject/obs-browser@1738605 - Fix cmake includes on Linux and macOS
obsproject/obs-browser@8725f07 - Update version to 2.26.6
2026-01-24 13:46:17 -05:00