Commit Graph

4961 Commits

Author SHA1 Message Date
tytan652
2fe0385d13 linux-pipewire: Add aspect ratio to video capture format name 2025-08-22 14:34:28 -04:00
tytan652
3cce28a1d3 linux-pipewire: Add framerates to video capture format name 2025-08-22 14:34:28 -04:00
tytan652
c11253bb08 linux-pipewire: Use list-based format selector for video capture
Negotiation is now made with the user selected format.

Also fixes a typo in the name of a structure.
2025-08-22 14:34:28 -04:00
derrod
86f98beaf1 obs-nvenc: Add SDK 13.0 features 2025-08-21 18:35:35 -04:00
derrod
c6650e212c obs-nvenc-test: Add SDK 13.0 features and Blackwell 2025-08-21 18:35:35 -04:00
derrod
fd757d6edd obs-nvenc-test: Add error message for session limit being hit 2025-08-21 18:35:35 -04:00
derrod
43e8d02117 obs-nvenc-test: Query device info even if NVENC fails 2025-08-21 18:35:35 -04:00
derrod
666b2c7141 obs-nvenc-test: Add device architecture to device info 2025-08-21 18:35:35 -04:00
derrod
5f2a4e976f obs-outputs: Add support for Hybrid MOV 2025-08-21 18:14:33 -04:00
derrod
3e82c919e5 obs-outputs: Remove FFmpeg-style timebase adjustment
Since OBS enforces a constant frame rate and monotonic timestamps
this is not necessary for us.
2025-08-21 18:14:33 -04:00
Huts, Roman
ef4c542850 obs-ffmpeg: Add missing color range property setting for AMD AV1 encoder 2025-08-21 17:16:06 -04:00
pkv
164c921006 nv-filters: Remove from video fx header redundant define
These defines were defined twice ... due to a botched rebase.
Formatting fixes too.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
50b0943cec obs-filters: Purge NVIDIA Noise suppression
This completely removes what remained in obs-filters of NVIDIA FX, which
have been moved to their own project.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
8ae76937e0 nv-filters: Premultiply correctly for Blur FX
Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
f3ebb86396 nv-filters: Fix for size changes with video fx
The && should be a || when sizes are changed.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
3baf0456ba nv-filters: For Blur FX, do not set mask image
It is not necessary to set the mask parameter for Blur FX.
Setting it to NULL, will apply the blur to the whole image.
This is not documented in the SDK but is returned when info about the
FX is requested by the plugin to the SDK library.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
ea96f87ca1 nv-filters: Fix load of video FX during reset
The video FX must be reloaded whenever any of its settings have changed,
including its the temporal state.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
ab55bb46ea nv-filters: Set NvVFX_Run to SYNC mode
The NvVFX_Run function can be run in SYNC or ASYNC mode; the SDK sample
uses SYNC. This defines the magic numbers in an enum and sets the
NvVFX_Run function to SYNC.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
94752762c7 nv-filters: Process Background Blur FX on same CudaStream as Background Removal FX
The SDK samples uses the same CudaStream for both FX. Do likewise which
simplifies the code. (The Background Blur calls the Background Removal.)

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
2ad236740f nv-filters: Change Background Blur to perf mode
In order to alleviate the demands on GPU, the Background Blur is now set
to Perf mode.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
ffd3a2a34e obs-filters: Remove unused NVIDIA effect
The greenscreen effect was moved to nv-filters project.
But this file failed to be removed.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
cf6eb3fd89 nv-filters: Add chair removal option to background removal
This adds the following new options for background removal effect,
namely the ability to remove the chair or leave it with the talking
head.
Requires sdk >= 0.7.6.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
b9f13cc360 nv-filters: Add voice optimization for audio filters
This adds a new property for the audio filters: VAD (Voice Audio Data).
When it is toggled, the effect will be optimized for voice processing.
Noise suppression will "remove low-volume noise and all non-speech data"
in the words of the SDK.
Requires SDK >= 1.6.0.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
5c57cb1d8b nv-filters: Enable new logger function for audio effects
This enables a new logger function introduced in SDK >= 1.6.0, which
gives much more details about what is going on during the effect
processing.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
a8b8abe691 nv-filters: Enable new logger function for Video Effects
This enables a new logger function introduced in SDK >= 0.7.5, which
gives much more details about what is going on during the effect
processing.

Signed-off-by: pkv <pkv@obsproject.com>
2025-08-21 16:52:14 -04:00
pkv
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ädtler
c1a65901f5 obs-ffmpeg: Correct P-frame packet priority in AMF encoder 2025-08-21 14:12:20 -04:00
Dennis Sädtler
8279094885 obs-nvenc: Set packet priority 2025-08-21 14:12:20 -04:00
PatTheMav
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
PatTheMav
95ea65136f plugins: Update plugins to use default draw effect for Metal 2025-08-20 17:01:09 -04:00
derrod
966f086c96 obs-outputs: Use packet time callback for frame-accurate chapter markers 2025-08-20 16:07:51 -04:00
Huts, Roman
345700b199 obs-ffmpeg: Add Pre-Analysis checkbox for AMD encoder 2025-08-20 15:15:08 -04:00
Huts, Roman
4fb20ee9ad obs-ffmpeg: Update default AMD encoding settings 2025-08-20 15:15:08 -04:00
Exeldro
033c740d13 obs-transitions: Fix stinger showing count for update during transition 2025-08-20 13:34:57 -04:00
derrod
91e90817d2 obs-outputs: Fix tkhd/mvhd box version with 64-bit timestamps 2025-08-19 23:37:02 -04:00
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