Commit Graph

11819 Commits

Author SHA1 Message Date
jp9000
a1235f498e Revert "obs-ffmpeg: Check nvenc max bframe count"
This reverts commit a793748743.

Not necessary, there's a better fix with 77fbfbe5c6.
28.1.1
2022-11-01 15:30:35 -07:00
Ryan Foster
f405647419 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:30:35 -07:00
tytan652
68578f9e0b CI: Fix service validator
ubuntu-latest has been switched to 22.04. This CI requires 20.04 because
of the dependence on Python 3.9.
2022-11-01 15:30:35 -07:00
jp9000
4a938c10c4 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:52:06 -07:00
jp9000
cf6f7f416a libobs: Update version to 28.1.1 2022-10-31 22:55:13 -07:00
Ryan Foster
42a51a2b23 UI: Migrate Simple Output NVENC preset 2022-10-31 22:52:11 -07:00
Ryan Foster
3cd4345e14 UI: Refactor NVENC preset migration
Refactor the NVENC preset migration code to avoid having to maintain
more copies of the preset mappings.
2022-10-31 22:52:11 -07:00
jp9000
de36705ebc libobs: Update version to 28.1.0 28.1.0 2022-10-31 14:27:54 -07:00
jpark37
26e91cf962 libobs: Force SRGB conversion for tonemapped video
Fixes case where video capture is darkened when both luma wipe and scale
filtering are set.
2022-10-31 14:20:21 -07:00
Ryan Foster
c57da834e9 obs-ffmpeg: Split NVENC preset migrations by codec
This commit also modifies UI.
2022-10-31 14:20:21 -07:00
Ryan Foster
03cdd317be UI: Add NVENC preset migration for lossless 2022-10-31 14:20:21 -07:00
Ryan Foster
eaf0eb95c5 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 14:20:21 -07:00
Ryan Foster
fd73860167 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 14:20:21 -07:00
Ryan Foster
c1178f638b 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 14:20:21 -07:00
jpark37
93e1efbde2 libobs: Fix blend method in studio mode
Property was not being copied over.
2022-10-31 11:25:33 +01:00
derrod
ebe3311384 obs-ffmpeg: Fix Ubuntu 20.04 detection 2022-10-28 21:36:52 -07:00
Jim
e43fb25051 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-28 21:36:52 -07:00
Translation Updater
3b0033a26b Update translations from Crowdin 2022-10-27 14:36:16 -07:00
Matt Gajownik
3a35b85bba 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-27 14:36:16 -07:00
Matt Gajownik
97dc9f212c enc-amf: Minor compilation improvements 2022-10-27 14:36:16 -07:00
gxalpha
27f44e5883 UI: Use correct key for "Always on Top" with projectors 2022-10-27 14:36:16 -07:00
Mattias Landin
d60ca17bed rtmp-services: Add Vindral service 2022-10-27 14:36:16 -07:00
derrod
1806f6667f UI: Fix placeholder element not being deleted 2022-10-27 14:36:16 -07:00
tytan652
afe1e70825 UI: Avoid showing service integration page on Wayland 2022-10-27 14:36:16 -07:00
gxalpha
135fc4f7fb UI: Set preset2 instead preset for simple mode NVENC 2022-10-27 14:36:16 -07:00
derrod
78a84c6e12 UI: Hide --portable from help text if disallowed 2022-10-27 14:36:16 -07:00
derrod
b327877c67 UI: Hide donation CTA when running via Steam 2022-10-27 14:36:16 -07:00
derrod
10e677521c UI: Add --steam flag 2022-10-27 14:36:16 -07:00
Stefan Hoffmeister
5a68d4998b linux-v4l2: Send STREAMON/STREAMOFF on vcam start/stop
This implements a suggestion made in
https://github.com/floe/backscrub/issues/133#issuecomment-1085598710 to
address what appears to be a problem in the v4l2loopback driver.
And better aligns OBS' usage to the v4l2 kernel interface.

fixes #4808
Co-authored-by: Norihiro Kamae <norihiro@nagater.net>
2022-10-27 14:36:16 -07:00
PatTheMav
e1f312feb3 docs: Fix sphinx import error on Python 3.10+ 2022-10-27 14:36:16 -07:00
jp9000
f8299e3739 obs-ffmpeg: Fix NVENC "mq" to use P6 rather than P4 28.1.0-rc1 2022-10-19 17:53:25 -07:00
jp9000
ead7ae2394 UI: Change "hq" to use P5 when upgrading NVENC 2022-10-19 17:53:25 -07:00
tytan652
3d5570f1ce UI: Fix stats widget appearance on Yami themes
- QSS changes fix background color on the stats dialog.
- Making OBSBasicStats derive from QFrame fixes the background color
and round bottom corners on the stats dock.
2022-10-19 12:35:44 -07:00
tytan652
526b810334 UI: Fix stats widget status font size 2022-10-19 12:35:44 -07:00
tytan652
6159da183e UI: Fix theme if apply and cancel in settings
Cancel after apply in settings will set the old theme.
2022-10-19 12:35:44 -07:00
derrod
d6f0270f49 CI: Fix Steam launching x86 version under Rosetta
Apparently Steam running the OBS launch script makes it run
inside Rosetta as well, so it ended up launching the x86 version
even on arm64 systems.

Explicitly detect Rosetta translation and set arm64 in those cases.
2022-10-19 12:35:44 -07:00
PatTheMav
6bf6e27ec1 mac-virtualcam: Fix random crashes in applications loading VirtualCam
Without invalidating the mach port used for sharing the IOSurface
between OBS and the application displaying the virtual camera output,
IOKit seems to run into the issue of receiving "shared" mach ports,
possibly because of port exhaustion. IOKit requires a "new" port
however and crashes upon that error otherwise.

Co-authored-by: Steven Michaud <smichaud@pobox.com>
2022-10-19 12:35:44 -07:00
derrod
515b310d59 CI: Fix services check using deprecated GHA output
Also fixes an invalid type annotation.
2022-10-19 12:35:44 -07:00
Ryan Foster
1047feac62 CI: Update GitHub Actions for set-output deprecation
GitHub Actions has deprecated set-output. Replace usages of set-output
in stdout with the new syntax to save the output to the new environment
variable.

See:
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2022-10-19 12:35:44 -07:00
gxalpha
7bb01d52d8 UI: Use correct title for failed replay buffer start 2022-10-19 12:35:44 -07:00
Richard Stanway
2ad517e91e obs-filters: Remove unused assignments 2022-10-15 16:17:46 -07:00
Richard Stanway
1d044db4f6 UI: Check return value of ConvertResText before accessing results 2022-10-15 16:17:46 -07:00
Richard Stanway
a282b1c64d libobs: Add ifdef for Windows-only variable assignment 2022-10-15 16:17:46 -07:00
Richard Stanway
cba81638b5 UI: Fix potential memory leak when parsing OBSThemeMeta 2022-10-15 16:17:46 -07:00
Richard Stanway
f021da2afa UI: Copy result of getenv before use
Another call to getenv, as well as a call to the POSIX functions
setenv(), unsetenv(), and putenv() may invalidate the pointer
returned by a previous call or modify the string obtained from a
previous call.

https://en.cppreference.com/w/c/program/getenv
2022-10-15 16:17:46 -07:00
Richard Stanway
daee83373c UI: Remove unused assignments 2022-10-15 16:17:46 -07:00
PatTheMav
e2db9b7f70 UI: Fix possible crash due to UI property access from graphics thread
Selection state can change by main thread while UI thread (which
calls DrawSpacingHelpers) tries to evaluate the amount of selected
items. Get amount of selected items by enumerating over the scene data
instead (which stays within the graphics thread).
2022-10-15 16:06:50 -07:00
jp9000
feda64e9c6 virtualcam-module: Fix crash on resolution change
Certain programs can start the virtualcam filter, then they may choose
to call `Stop()` on the filter, call `SetFormat()` to change the
resolution, then call `Run()` again to start the filter again. The
Windows virtual camera filter did not account for this, thus if the
resolution was different, it had potential to cause a crash.

To fix this, store the last filter resolution, then check the resolution
every frame, and if it changes, reset the scaling information.

(Author note: This code is unclean. What we need to do with the virtual
camera filter is make it only create the thread on `Run()`, then join
the thread on `Stop()`. It's currently a bit complicated to make it do
that at the moment, so this code is a kind of an annoying stopgap for
now.)
2022-10-15 01:42:07 -07:00
jp9000
bc9ed5062d virtualcam-module: Clarify resolution variables
The `cx`/`cy`/`interval` variables specifically specify the
OBS/placeholder resolution/interval. The resolution may not be the same
as the filter's resolution (when scaling is used).

Instead, prefix these variables with `obs_` to improve clarity.
2022-10-15 01:29:05 -07:00
jp9000
e18acb57af obs-ffmpeg: Clarify name of NVENC preset 2022-10-14 16:25:22 -07:00