Commit Graph

4900 Commits

Author SHA1 Message Date
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
PatTheMav
96e4d67242 clang-format: Update source code files with clang-format 19.1.1 2025-04-17 18:16:33 +02:00
Neal Gompa
39a692d960 obs-ffmpeg: Add OpenH264 H.264 software codec
This allows users to leverage the OpenH264 codec from Cisco to encode
H.264 video content. It is significantly reduced in capability from
alternatives, but it does the job.

This also provides a framework for adding support for other H.264
software codecs provided through FFmpeg.
2025-04-03 12:43:20 -07:00
jcm
bf7e82de80 mac-avcapture: Use list-based format selector 2025-04-02 15:03:52 -04:00
Alex Luccisano
7decef8ab0 obs-ffmpeg: Make VAAPI rc_mode comparison case insensitive
`get_rc_mode()` compares the incoming rate control mode string
to the .name member of rc_mode_t, and the table entries are
all upper-case. This caused a crash when the incoming string
is set to "cbr" instead of "CBR". Make the string comparison
case insensitive.
2025-04-01 23:18:15 -04:00
PancakeTAS
4dfd0b31e4 linux-pipewire: Fix 10- and 16-bit captures 2025-04-01 16:01:29 -04:00
Ryan Foster
b96607345a obs-websocket: Update version to 5.5.6
Fix a possible crash when opening OBS in Studio Mode.
2025-03-24 13:48:24 -04:00
Lukáš Jech
01d5198f7b rtmp-services: Add "VRCDN - Live" service 2025-03-20 19:21:30 -04:00
duyquach-castr
291adefb4d rtmp-services: Update Castr.io ingests 2025-03-19 16:01:01 -04:00
Service Checker
1673cce921 rtmp-services: Remove defunct servers/services 2025-03-19 13:58:21 -04:00
jcm
68c4617927 mac-avcapture: Clear memory when creating frame struct 2025-03-18 17:35:53 -04:00
Ryan Foster
95cea5487b obs-browser: Update version to 2.24.6
46adc4b - Check source validity before attempting to log renderer crash
ac34d8e - Don't loop Cef exit while shutting down if task post fails
b56fd78 - Update version to 2.24.6
2025-03-17 18:56:47 -04:00
pkv
f6f5c7bb25 nv-filters: Silence initial load error for Blur
On initial run of the Blur filter, some parameters are not all set when
there is the first call to load the effect. This is actually not an
issue, so the log is now silenced at this time.

Signed-off-by: pkv <pkv@obsproject.com>
2025-03-17 16:25:58 -04:00
pkv
cc452e5acd nv-filters: Remove reset signal for Video effects
The reset signal was triggered whenever there was an update in the
parent source. This destroys the effect and recreates it, which can be
resource heavy.
We now let the SDK handle the source update on its own rather than
manually resetting the effect on obs side.

Signed-off-by: pkv <pkv@obsproject.com>
2025-03-17 16:25:58 -04:00
pkv
3402f6c7d0 nv-filters: Fix CudaStream used in Video effects
During the mapping and unmapping of resources, the CudaStream was not
always consistent.
This fixes the issue.
Thanks to Stephan from NVIDIA Dev support for noticing the mismatch.

Signed-off-by: pkv <pkv@obsproject.com>
2025-03-17 16:25:58 -04:00
pkv
b5d0054cfa nv-filters: Reallocate state when resetting AIGS filters
This properly allocates the temporal state variable used in AI
greenscreen effect, when the latter is reset.

Signed-off-by: pkv <pkv@obsproject.com>
2025-03-17 16:25:58 -04:00
pkv
2682ccc33c nv-filters: Fix destruction of Background Blur effect
For the background blur effect, it was found that destroying it and
then adding any other NVIDIA effect led to a blank picture.
This commit swaps the order of destroying the effect and the associated
cudaStream.
For other effects the order does not matter; I have no idea why the
order matters for blur effect and the SDK gives no indication about any
proper order at destruction time.

Fixes bug #11383.
Signed-off-by: pkv <pkv@obsproject.com>
2025-03-17 16:25:58 -04:00
pkv
ff51280ecb nv-filters: Set max effective threshold to 0.95 for Background removal
The threshold THR in Background removal filter has the following effect:
- if alpha if between [THR - 0.1; THR], alpha is interpolated;
- if alpha >= THR, alpha is set to 1.0;
- if alpha <= THR - 0.1, alpha is set to 0.
It was introduced in order to smooth the alpha at the edges of the
foreground.
This works fine unless THR == 1, where there can be bulk pixels with
alpha which will be interpolated as if they were at the edge;
in order to ensure that a bulk area with alpha set to 1.0 is well
defined, the max threshold is now set to 0.95 (so if the user picks a
unity threshold, a value of 0.95 will actually be used).
This fixes a bug in third party plugins which rely on a bulk foreground
safely set at alpha == 1.0. [1]

[1] https://github.com/FiniteSingularity/obs-stroke-glow-shadow/issues/61

Signed-off-by: pkv <pkv@obsproject.com>
2025-03-17 16:25:58 -04:00
Bo
ecb99e3b34 obs-nvenc: Fix incorrect CUDA array size allocation
Fix cuda array use 2 bytes per element instead of 4 bytes with P010 format.
2025-03-17 14:49:09 -04:00
Huts, Roman
11f2322711 obs-ffmpeg: Fix throughput checks for older AMD driver 2025-03-14 08:43:14 -04:00
Huts, Roman
1a2f8c2844 obs-ffmpeg: Add AMD AV1 B-frame support 2025-03-13 16:53:16 -04:00
Gale, Thy-Lan
7f94906d5f obs-qsv11: Fix CBR Spike for Battlemage 2025-03-13 15:40:29 -04:00
prgmitchell
b64f549ec9 win-capture: Add FragPunk to compatibility list 2025-03-12 17:32:18 -04:00
PatTheMav
d6e5ecd88a plugins: Add ARM64 support to obs-ffmpeg, obs-filters, and obs-outputs 2025-03-12 16:33:00 -04:00
PatTheMav
df97bddd87 cmake: Update cross-platform build project management for Windows
Enables creation of x64 and x86 child projects when building on ARM64
and decouples functionality from legacy_check function
2025-03-12 16:33:00 -04:00
jcm
4fd671ee89 mac-avcapture: Prevent race condition in source init/deinit 2025-03-07 13:51:17 -05:00
Ryan Foster
3437e2b082 win-dshow: Fix possible crash if frame width or height is zero
If a frame has a width or height of zero, this value will make it into
libobs/media-io/video-frame.c:video_frame_init and cause linesizes or
heights to be zero, which will result in a bmalloc(0) call and OBS will
crash.

Instead of letting the call stack get that far, check the frame width
and height here at the source, log an error, and return early if the
frame width or height are zero.
2025-03-07 12:33:08 -05:00