Commit Graph

3848 Commits

Author SHA1 Message Date
PatTheMav
7cedd324e1 mac-capture: Disable all SCK modes besides WindowCapture on macOS 12
SCK has too many open issues on macOS 12 to enable full functionality
on that version. Window Capture has the biggest performance uplift and
so far the least amount of quirks, so leave this variant (with the
"Beta" qualifier) for macOS versions before Ventura.
2022-11-12 18:17:49 -05:00
gxalpha
8e8148a2d5 mac-videotoolbox: Support P010 and HDR color spaces 2022-11-12 12:24:10 +01:00
pkv
f7086f2ec0 obs-filters: NVIDIA Background Removal variable mask refresh
This adds a slider to set variable mask refresh rate.
This is useful to alleviate the GPU load so that the mask generation
can optionally be done every n frames (n = 1-4).

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-11 23:06:01 +01:00
pkv
bed0175326 obs-filters: Add temporal processing to Background Removal
The AI detection is improved by enabling temporal processing for the
NVIDIA Background Removal filter.
This requires NVIDIA Video Effects version >= 7.1.0.
Fixes issue #7639 (VRR issue with previous sdk versions).

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-11 23:06:01 +01:00
pkv
310a882dd8 obs-filters: Warn if NVIDIA Audio FX is outdated
This warns the user if the SDK version is outdated and suggests to
upgrade through a warning in the Properties window of the
filter.
Also removed the label RTX from the logs, just keeping NVIDIA Audio.

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-11 23:06:01 +01:00
pkv
c30868f056 obs-filters: Warn if NVIDIA Video FX is oudated
This checks if the redistributable for NVIDIA Video FX is the latest.
If it is not, a warning is displayed in the Property window for the
filter.
Also removed the label RTX from the logs, just keeping NVIDIA Video FX.
The NVIDIA Video FX loader has been updated to sdk 7.1.0.
The new functions of the sdk are not loaded though.

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-11 23:05:53 +01:00
Richard Stanway
63c3299a9f obs-outputs: Increase librtmp send timeout to 15 seconds
Based on what we're seeing after the release of OBS 28, six seconds is
too low and causes disconnects instead of dropped frames.
2022-11-11 20:53:10 +01:00
PatTheMav
5913be9198 obs-outputs: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
PatTheMav
47260d599e obs-filters: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
PatTheMav
415c2d9efd image-source: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
PatTheMav
e62fcce852 coreaudio-encoder: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
PatTheMav
8da9df5274 obs-x264: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
PatTheMav
b417df7d95 win-capture: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:28 +01:00
PatTheMav
d87467666b obs-ffmpeg: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:28 +01:00
PatTheMav
ecdbab6c7a linux-v4l2: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:27 +01:00
PatTheMav
ae01a626b6 linux-capture: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:27 +01:00
PatTheMav
bf692d816e obs-outputs: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:27 +01:00
PatTheMav
826c602b84 mac-capture: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:27 +01:00
pkv
ce2d1ffab7 obs-ffmpeg: Fix deprecation of channels member of several structs
This fixes deprecation warnings since the channels member of
AVCodecContext is marked as deprecated [1], as well as the channels
member of AVFrame [2].
In all instances where a warning appear, a switch to the new API is
done.
[1] lavc: switch to the new channel layout API
FFmpeg/FFmpeg@548aeb9
[2] Bump minor versions after the channel layout changes
FFmpeg/FFmpeg@cdba98bb80

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-10 19:37:07 -05:00
pkv
ce63c5b057 obs-ffmpeg: Update mpegts to channel API change
The channel_layout API was overhauled by FFmpeg [1-4]. The previous
bitmask channel_layout is replaced by a struct ch_layout which combines
the number of channels, a bitmask and other infos. This struct must now
be supplied to AVframes since avutil >= 57.24.100 and to
AVCodecContext since avcodec 59.24.100 per (1].
This commit provides the required info to obs-ffmpeg-mpegts.

[1] Bump minor versions after the channel layout changes
FFmpeg/FFmpeg@cdba98b
[2] lavc: switch to the new channel layout API
FFmpeg/FFmpeg@548aeb9
[3] avutil/channel_layout: Add a new channel layout API
FFmpeg/FFmpeg@086a804
[4] avframe: switch to the new channel layout API db6efa18
FFmpeg/FFmpeg@db6efa1

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-10 19:37:07 -05:00
Paul Hindt
d851f1d916 aja: Fix capturing UHD/4K YUV on Kona HDMI.
Added missing routing preset for KonaHDMI UHD/4K.

Calculate framebuffer index based on framestore index.
2022-11-09 23:08:10 -08:00
jpark37
d84a9dad8a mac-capture: Support P3 for HDR recordings 2022-11-09 22:34:50 -08:00
Developer-Ecosystem-Engineering
faea7fb8b2 mac-avcapture: Add DeskCam support 2022-11-08 22:41:52 +01:00
rch850
ca53f16e20 rtmp-services: Add Whowatch 2022-11-08 20:04:45 +01:00
Jim
8e2ad8c3c1 obs-filters: Add a simple 3-band equalizer 2022-11-03 23:50:46 -07:00
Matt Gajownik
e73b5526b0 obs-browser: Update version to 2.18.7
2a35b7d - Don't crash when logging from a deleted browser source

Fixes #7707
2022-11-03 13:27:39 +11:00
PatTheMav
097e9ccecf mac-videtoolbox: Use correct size for system representation CFStrings 2022-11-02 22:44:20 +01:00
gxalpha
a352f0fdd8 mac-videotoolbox: Make unsupported color format text codec agnostic 2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering
44c824985c mac-videotoolbox: Remove HW_ACCEL flags
The hw/sw encoder selection is enforced by the encoder IDs, so these flags are
not explicitly needed.
2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering
761530d34b mac-videotoolbox: Add support platform hardware and software ProRes 422
Utilize the systems ProRes software and hardware encoders on supported configurations
2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering
641ec29a00 obs-ffmpeg: Add codec-tag support to ffmpeg-mux
By default, ffmpeg-mux is guessing at the codec format of submitted data.
This change allows encoders to suggest a particular codec.
2022-11-02 22:44:20 +01:00
Developer-Ecosystem-Engineering
e461ec4be1 mac-videotoolbox: Add support for platform hardware and software HEVC
Adds support for the system provided HEVC encoders
2022-11-02 22:44:20 +01:00
jp9000
929a68bdff Revert "obs-ffmpeg: Check nvenc max bframe count"
This reverts commit a793748743.

Not necessary, there's a better fix with 77fbfbe5c6.
2022-11-01 15:26:42 -07:00
Ryan Foster
77fbfbe5c6 obs-ffmpeg: Cap NVENC Max B-frames according to GPU caps
Erroring out of NVENC init early if the Max B-frames setting was higher
than the encoder's capability causes an encoder failure on NVIDIA Pascal
(10-series) and earlier GPUs due to an unfortunate interaction between
Simple Output Mode, HEVC, and our default B-frames setting of 2. Since
we already check the Max B-frames capability of the encoder, cap at that
value instead of erroring out.

Fixes #7698.
2022-11-01 15:26:23 -07:00
jp9000
a793748743 obs-ffmpeg: Check nvenc max bframe count
Checks to make sure that the bframe count is equal to or below the
maximum number of bframes that the encoder for the codec supports.

Fixes a bug where setting bframes higher than what the encoder supports
would cause the encoder to not start up properly.
2022-11-01 00:45:30 -07:00
Ryan Foster
0ddba5d644 obs-ffmpeg: Split NVENC preset migrations by codec
This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
891e3b0f49 obs-ffmpeg: Align NVENC preset migrations to NVIDIA guidelines
Bring our NVENC preset migrations closer in line with NVIDIA guidelines.

https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-preset-migration-guide/

This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
254dc4081c obs-ffmpeg: Add NVENC preset mapping for old Default preset
The old NVENC preset "Default", labeled in OBS as "Performance", maps to
the new P3 preset when not using multipass. Since we previously only
enabled multipass/two-pass on "Max Quality", we can map this to P3 in
all cases.

This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
08f7a3778d obs-ffmpeg: Swap hq and mq preset order
This is for consistency with b2ff22a587.
Max Quality (mq) is "higher" than Quality (hq), and it's helpful for the
code order to reflect that.
2022-10-31 17:02:51 -04:00
derrod
ec3ea1f8a0 win-capture: Disable clang-format for assembly patterns 2022-10-29 16:06:24 -07:00
Vainock
5a1e93ef36 obs-filters: Fix typo in Upward.Compressor 2022-10-29 17:33:19 +02:00
derrod
85d561cad1 obs-ffmpeg: Fix Ubuntu 20.04 detection 2022-10-27 16:47:37 -07:00
Jim
dd26fe4f8a obs-ffmpeg: Fix FFmpeg NVENC presets on Ubuntu 20.04
Ubuntu 20.04 and 22.04 both have the same FFmpeg versions, but FFmpeg on
20.04 was built with version 9 of NVENC headers, whereas 22.04 was built
with 11.

Unfortunately, that means we have to revert back to the old presets when
Ubuntu 20.04 is detected. The way this detection is done is a bit hacky,
but it's the only way to preserve startup performance. Otherwise we'd
have to write yet another startup subprocess test program to detect
whether the FFmpeg being used was built with older or newer NVENC, which
is both slow to start up and annoying to write. So instead, just get the
distro name/version strings and detect Ubuntu 20.04 that way.
2022-10-27 14:35:51 -07:00
Jim
4cc06ebdaa obs-filters: Fix comment typo 2022-10-27 00:49:32 -07:00
pkv
8d457718dc obs-filters: Add upward compressor filter
An upward compressor increases levels below a threshold, instead of
decreasing levels above it. This is closely related to an expander; the
upward compressor can be seen as an expander with ratio in the [0,1]
range. This can be used for example when the game audio is lowered
against a voice track but that one still wants to be able to hear very
low game sounds.

For more use cases:
https://www.izotope.com/en/learn/4-tips-for-using-upwards-compression-in-neutron.html

Signed-off-by: pkv <pkv@obsproject.com>
2022-10-27 00:44:59 -07:00
Jim
56cfaf792d obs-filters: Refactor expander filter expansion code
Things were a bit unoptimal and were squished together, making the code
much more difficult to work with. Instead, separate the code for
processing individual samples into its own function.
2022-10-27 00:44:59 -07:00
Jim
89006716b4 obs-filters: Use snake_case for expander variables 2022-10-27 00:44:59 -07:00
Translation Updater
f065f20ce1 Update translations from Crowdin 2022-10-25 22:32:14 +00:00
Matt Gajownik
b690ed0ad5 obs-browser: Update version to 2.18.6
d31b5fc - Include source name when printing console errors
d1fa35d - Add missing translation key for ERR_TIMED_OUT
2022-10-26 09:29:28 +11:00
Matt Gajownik
42770edd20 enc-amf: Minor compilation improvements 2022-10-26 09:24:54 +11:00