Commit Graph

4926 Commits

Author SHA1 Message Date
jcm
4e7152bd70 mac-capture: Set minimum frame interval in capture initialization 2025-08-19 22:52:20 -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
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
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
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
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-Ace
9a4632ecb4 win-capture: Add Wuthering Waves to compatibility list 2025-07-02 13:30:49 -04:00
Gol-D-Ace
d92cb156fc win-capture: Add Roblox to compatibility list 2025-07-01 15:04:20 -04:00
Matt Gajownik
70c85f9875 Update translations from Crowdin 2025-07-01 13:34:08 -04:00
jcm
6134923fe7 mac-virtualcam: Resolve deprecation warnings to reflect 12.0 target 2025-06-30 14:50:14 -04:00
jcm
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 Gajownik
ffef7504ac Update translations from Crowdin 2025-06-09 14:55:50 -04:00
Huts, Roman
48feb2c593 obs-ffmpeg: Add B-frame CQP support for AMD AV1 encoder 2025-06-05 14:37:20 -04:00
PancakeTAS
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 Gajownik
de61fd5756 CI: Add CEF & enable obs-browser for Windows on ARM 2025-05-20 12:50:41 -04:00
Dennis Sädtler
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
JiangXsong
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
tfo
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 Checker
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, Roman
c518f69c84 obs-ffmpeg: Add Pre-Analysis checkbox for AMD encoder 2025-05-05 17:43:00 -04:00
Huts, Roman
5a1f622ac1 obs-ffmpeg: New default AMD encoding settings
# Conflicts:
#	plugins/obs-ffmpeg/texture-amf.cpp
2025-05-05 17:43:00 -04:00
jeiea
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
jeiea
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 Murillo
2b56ccfeb5 rtmp-services: Add Enhanced Streaming support for Dolby Millicast 2025-05-01 14:05:44 -04:00
gxalpha
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 Hahn
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
jsnkan
0fc69fb913 obs-outputs: Correct mp4_output_destory to mp4_output_destroy 2025-04-28 18:16:09 -04:00
Yuri Victorovich
b540c47b8f linux-v4l2: Add support for virtual camera on non-Linux environments 2025-04-28 16:41:39 -04:00
Tom Haffenden
b8f7c77937 win-capture: Update hooked state before unhooked signal
If the get_hooked procedure is called during the unhooked signal
the source would still report that it's hooked because gc->capturing
hasn't been updated yet.
2025-04-28 14:44:22 -04:00
tytan652
1bf84a6901 cmake: Replace Xcb CMake finders with ECM 2025-04-28 13:30:26 -04:00
Alex Luccisano
d31271834f obs-ffmpeg: Query and log the AMF codec level
Log the codec level being used by AMF-based encoders after
ffmpeg_opts have been parsed. Users could have manually changed the
codec level so query the level via AMF then determine the string for
logging.
2025-04-25 16:48:18 -04:00
Alex Luccisano
2217eb4d95 obs-ffmpeg: Set AMF codec level properly
The default "level" setting was being used for each codec (AVC, HEVC,
AV1) supported by AMF. For example, all HEVC encoders were using
level 6.2 and this caused some playback devices to reject the
bitstream for decode because the device reported a maximum decode
level lower than 6.2.

Add functionality to determine the best match for the codec level
instead of relying on the defaults.
2025-04-25 16:48:18 -04:00
jcm
506281e3f6 mac-capture: Fix incorrect enum comparison 2025-04-25 13:24:41 -04:00
stephematician
12c6febae2 linux-v4l2: Fix virtual camera start failure
Add function that tries to reset v4l2loopback output for module versions
from 0.12.5 to 0.12.7. If successful, then set flag that STREAMON and
STREAMOFF are necessary each time the device is opened/closed.
2025-04-23 20:26:49 -04:00
Malcolm Bechard
343ae6015a graphics-hook: Fix crash with Vulkan DirectDisplay
Vulkan Direct Display uses extensions:
VK_KHR_display/VK_EXT_direct_mode_display
This workflow allows creating swapchains that arn't active on the
desktop, so they don't have HWNDs.
Avoid trying to create swap_data when a HWND can't be found.

Fixes #11581
2025-04-23 17:24:29 -04:00
DeeDeeG
22c2ccfa2a obs-qsv11: Remove non-functional CQM-related code
The encoder option this function would show/hide doesn't exist in the
codebase anymore. (It was removed some time ago.)
2025-04-23 13:35:10 -04:00
Akihiko Koizuka
665a8fea74 rtmp-services: Update niconico ingests
- Update ingest URLs to restore streaming functionality
- Consolidate free and premium member entries into a single entry
- Add more_info_link and stream_key_link
2025-04-21 14:25:50 -04:00
xlbljz
f8d2bfef7d rtmp-services: Add HEVC to supported video codecs for Bilibili 2025-04-18 16:47:41 -04:00