5086 Commits
Author SHA1 Message Date
pkvandRyan Foster 5e60e19de3 nv-filters: Disable audio filter instead of destroying in case of issues
The audio filters are now disabled if an issue is detected;
the filter is no longer destroyed.
This avoids a call to destroy function within the filter.
Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
Dennis SädtlerandRyan Foster c1a65901f5 obs-ffmpeg: Correct P-frame packet priority in AMF encoder 2025-08-21 14:12:20 -04:00
Dennis SädtlerandRyan Foster 8279094885 obs-nvenc: Set packet priority 2025-08-21 14:12:20 -04:00
PatTheMavandRyan Foster 813c95f4ca libobs: Update sharpness effect to enable compilation for Metal
A boolean comparison that involves at least one vector type will
result in a boolean vector (not a boolean scalar) for Direct3D and
Metal, whereas OpenGL returns a scalar boolean.

To avoid unnecessary code complexity, use the "distance" function
instead, which treats the color values as vectors and returns a
non-zero value if they are any different, achieving the same result.
2025-08-20 17:01:09 -04:00
PatTheMavandRyan Foster 95ea65136f plugins: Update plugins to use default draw effect for Metal 2025-08-20 17:01:09 -04:00
derrodandRyan Foster 966f086c96 obs-outputs: Use packet time callback for frame-accurate chapter markers 2025-08-20 16:07:51 -04:00
Huts, RomanandRyan Foster 345700b199 obs-ffmpeg: Add Pre-Analysis checkbox for AMD encoder 2025-08-20 15:15:08 -04:00
Huts, RomanandRyan Foster 4fb20ee9ad obs-ffmpeg: Update default AMD encoding settings 2025-08-20 15:15:08 -04:00
ExeldroandRyan Foster 033c740d13 obs-transitions: Fix stinger showing count for update during transition 2025-08-20 13:34:57 -04:00
derrodandRyan Foster 91e90817d2 obs-outputs: Fix tkhd/mvhd box version with 64-bit timestamps 2025-08-19 23:37:02 -04:00
jcmandRyan Foster 4e7152bd70 mac-capture: Set minimum frame interval in capture initialization 2025-08-19 22:52:20 -04:00
Sebastian BeckmannandRyan Foster 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
tytan652andRyan Foster 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
Ivan MolodetskikhandRyan Foster 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 MolodetskikhandRyan Foster 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 MolodetskikhandRyan Foster 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
JiangXsongandRyan Foster 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
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 d91ccdefd2 obs-websocket: Update version to 5.6.2
Changes:
- Update translations
2025-07-04 13:52:56 -04:00
Ryan Foster 5f64568312 obs-browser: Update version to 2.25.2
033a23b - Update version to 2.25.2
2025-07-04 13:52:56 -04:00
Gol-D-AceandRyan Foster 9a4632ecb4 win-capture: Add Wuthering Waves to compatibility list 2025-07-02 13:30:49 -04:00
Gol-D-AceandRyan Foster d92cb156fc win-capture: Add Roblox to compatibility list 2025-07-01 15:04:20 -04:00
Matt GajownikandRyan Foster 70c85f9875 Update translations from Crowdin 2025-07-01 13:34:08 -04:00
jcmandRyan Foster 6134923fe7 mac-virtualcam: Resolve deprecation warnings to reflect 12.0 target 2025-06-30 14:50:14 -04:00
jcmandRyan Foster 9dc9d67fd0 mac-avcapture: Resolve deprecation warnings to reflect 12.0 target 2025-06-30 14:50:14 -04:00
Ryan Foster 5e7804c137 obs-websocket: Update version to 5.6.1
Changes:
- Update translations

Other Notes:
This diff effectively reverts an accidental submodule commit rollback
that occurred in ffef7504ac.
As a result, the submodule diff is larger than intended. However, the
only net changes between 31.1.0-beta2 and this commit are the updated
translations.
2025-06-13 18:23:21 -04:00
Ryan Foster b9bbde2e42 obs-browser: Update to 2.25.1
788cc61 - Update translations from Crowdin
6987eab - Allow vertical scrolling of error pages
9ffe382 - Update version to 2.25.1
2025-06-13 18:23:21 -04:00
Matt GajownikandRyan Foster ffef7504ac Update translations from Crowdin 2025-06-09 14:55:50 -04:00
Huts, RomanandRyan Foster 48feb2c593 obs-ffmpeg: Add B-frame CQP support for AMD AV1 encoder 2025-06-05 14:37:20 -04:00
PancakeTASandRyan Foster f614064eb4 linux-pipewire: Fix render technique in captures 2025-05-27 14:14:26 -04:00
Ryan Foster 47a81b1c69 obs-websocket: Update version to 5.6.0
New Features:
- Added `obsStudioVersion` field to Identify message [tt2468]
- Added `inputKindCaps` field to input list array [tt2468]
- Added `inputKindCaps` to `CreateInput` event [tt2468]
- Added input deinterlace mode/field order requests [tt2468]

Enhancements:
- Added nlohmann type converters for source deinterlacing [tt2468]

Bug Fixes:
- Avoided unnecessary volumemeters object copy [tt2468]

Other Notes:
- Updated documentation
2025-05-23 18:18:55 -04:00
Ryan Foster 8bf9ec6945 win-capture: Fix crash if cursor size is zero 2025-05-23 13:49:52 -04:00
Matt GajownikandRyan Foster de61fd5756 CI: Add CEF & enable obs-browser for Windows on ARM 2025-05-20 12:50:41 -04:00
Dennis SädtlerandRyan Foster 8e129b171d obs-outputs: Correct FLV composition time offset calculations
The conversion to milliseconds rounds down. Rounding down DTS and CT
values independently results in a cumulative error that results in the
PTS (DTS + CT) being incorrect (off-by-one).
2025-05-19 15:32:11 -04:00
JiangXsongandRyan Foster 4510b93bcb linux-v4l2: Skip decode H264/MJPEG frames during capture 2025-05-15 16:06:27 -04:00
Ryan Foster 8b0e9748da obs-browser: Update to 2.25.0
c5a2092 - Add hardware accel support under Linux
be8e590 - Add workaround for hardware accel under X11
00b920f - Blacklist NVIDIA driver for hardware accel under Linux
a0a0edc - Fix support for building with CEF 5060
a54e7c4 - Enable building with CEF 6834
99f9940 - Enable building with CEF 6943
55071a1 - Expand panel shutdown loop to all platforms
0fb70b6 - Add workaround for browser dock hanging
0b13eb9 - Replace Glad usage with newer libobs graphics API
f617868 - Prevent Windows 11 timer resolution throttling to fix audio distortion
5ee8056 - Update version to 2.25.0
2025-05-13 14:02:55 -04:00
tfoandRyan Foster 000437ff7e decklink: Fix incorrect HDR min mastering luminance value
Update value for
bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance from 0.00001
to 0.0001 to match the documented minimum in the DeckLink SDK Manual.
2025-05-09 14:16:54 -04:00
Service CheckerandRyan Foster c96366eafb rtmp-services: Remove defunct servers/services 2025-05-06 14:03:33 -04:00
Ryan Foster c86de0587a win-capture: Fix crash if no display is available
If no displays are available, numPath or numMode can be 0, which will
result in a bmalloc(0) call and OBS will crash.
2025-05-05 19:23:36 -04:00
Ryan Foster 720f37046f Revert "obs-ffmpeg: New default AMD encoding settings"
This reverts commit 5a1f622ac1.
2025-05-05 18:52:29 -04:00
Ryan Foster a96de1e5dc Revert "obs-ffmpeg: Add Pre-Analysis checkbox for AMD encoder"
This reverts commit c518f69c84.
2025-05-05 18:52:29 -04:00
Huts, RomanandRyan Foster c518f69c84 obs-ffmpeg: Add Pre-Analysis checkbox for AMD encoder 2025-05-05 17:43:00 -04:00
Huts, RomanandRyan Foster 5a1f622ac1 obs-ffmpeg: New default AMD encoding settings
# Conflicts:
#	plugins/obs-ffmpeg/texture-amf.cpp
2025-05-05 17:43:00 -04:00
jeieaandRyan Foster a1c6bae601 nv-filters: Fix warnings with Visual Studio 2022 17.14
Following error occurs with Visual Studio 2022 v17.14 Preview 4.0 and
Windows 11 SDK 10.0.26100.0

nvidia-videofx-filter.c(133,9): error C2220: the following warning is
treated as an error
nvidia-videofx-filter.c(133,9): warning C5287: operands are different
enum types 'nvvfx_fx_id' and 'nvvfx_filter_id'; use an explicit cast to
silence this warning

The warning is reasonable, so change mismatched enum type.
2025-05-02 16:59:57 -04:00
jeieaandRyan Foster 55673966cf win-capture: Fix warnings with Visual Studio 2022 17.14
Following error occurs with Visual Studio 2022 v17.14 Preview 4.0 and
Windows 11 SDK 10.0.26100.0.

duplicator-monitor-capture.c(766,35): error C2220: the following warning
is treated as an error
duplicator-monitor-capture.c(766,35): warning C5287: operands are
different enum types
'window_capture_method' and 'display_capture_method'; use an explicit
cast to silence this warning

The warning is reasonable, so change mismatched enum type.
2025-05-02 16:59:57 -04:00
Sergio Garcia MurilloandRyan Foster 2b56ccfeb5 rtmp-services: Add Enhanced Streaming support for Dolby Millicast 2025-05-01 14:05:44 -04:00
gxalphaandRyan Foster 281f8137f5 UI,libobs,obs-outputs: Remove HAVE_OBSCONFIG_H ifdefs
With the removal of all legacy code paths, obsconfig.h always exists and
the compile definition always gets set. As such, it's no longer
necessary to check for it.

As removing the definition itself could be seen as a breaking change,
this simply moves the definition to pc.in and cmake.in files for now to
preserve the value for plugins that might expect this to be set. We may
remove the definition entirely in a later release.
2025-04-30 13:05:35 -04:00
Ruwen HahnandRyan Foster 0576182f96 obs-outputs: Include all audio encoder bitrates
When network optimizations are enabled, `new_socket_loop` is enabled,
and an accurate total output bitrate is required. Include the audio
bitrates in this calculation.
2025-04-30 12:27:03 -04:00
jsnkanandRyan Foster 0fc69fb913 obs-outputs: Correct mp4_output_destory to mp4_output_destroy 2025-04-28 18:16:09 -04:00
Yuri VictorovichandRyan Foster b540c47b8f linux-v4l2: Add support for virtual camera on non-Linux environments 2025-04-28 16:41:39 -04:00