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 Fosterandjp9000 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
tytan652andjp9000 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 Fosterandjp9000 42a51a2b23 UI: Migrate Simple Output NVENC preset 2022-10-31 22:52:11 -07:00
Ryan Fosterandjp9000 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
jpark37andJim 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 FosterandJim c57da834e9 obs-ffmpeg: Split NVENC preset migrations by codec
This commit also modifies UI.
2022-10-31 14:20:21 -07:00
Ryan FosterandJim 03cdd317be UI: Add NVENC preset migration for lossless 2022-10-31 14:20:21 -07:00
Ryan FosterandJim 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 FosterandJim 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 FosterandJim 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
jpark37andderrod 93e1efbde2 libobs: Fix blend method in studio mode
Property was not being copied over.
2022-10-31 11:25:33 +01:00
derrodandJim 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 UpdaterandJim 3b0033a26b Update translations from Crowdin 2022-10-27 14:36:16 -07:00
Matt GajownikandJim 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 GajownikandJim 97dc9f212c enc-amf: Minor compilation improvements 2022-10-27 14:36:16 -07:00
gxalphaandJim 27f44e5883 UI: Use correct key for "Always on Top" with projectors 2022-10-27 14:36:16 -07:00
Mattias LandinandJim d60ca17bed rtmp-services: Add Vindral service 2022-10-27 14:36:16 -07:00
derrodandJim 1806f6667f UI: Fix placeholder element not being deleted 2022-10-27 14:36:16 -07:00
tytan652andJim afe1e70825 UI: Avoid showing service integration page on Wayland 2022-10-27 14:36:16 -07:00
gxalphaandJim 135fc4f7fb UI: Set preset2 instead preset for simple mode NVENC 2022-10-27 14:36:16 -07:00
derrodandJim 78a84c6e12 UI: Hide --portable from help text if disallowed 2022-10-27 14:36:16 -07:00
derrodandJim b327877c67 UI: Hide donation CTA when running via Steam 2022-10-27 14:36:16 -07:00
derrodandJim 10e677521c UI: Add --steam flag 2022-10-27 14:36:16 -07:00
Stefan HoffmeisterandJim 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
PatTheMavandJim 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
tytan652andJim 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
tytan652andJim 526b810334 UI: Fix stats widget status font size 2022-10-19 12:35:44 -07:00
tytan652andJim 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
derrodandJim 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
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
derrodandJim 515b310d59 CI: Fix services check using deprecated GHA output
Also fixes an invalid type annotation.
2022-10-19 12:35:44 -07:00
Ryan FosterandJim 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
gxalphaandJim 7bb01d52d8 UI: Use correct title for failed replay buffer start 2022-10-19 12:35:44 -07:00
Richard StanwayandJim 2ad517e91e obs-filters: Remove unused assignments 2022-10-15 16:17:46 -07:00
Richard StanwayandJim 1d044db4f6 UI: Check return value of ConvertResText before accessing results 2022-10-15 16:17:46 -07:00
Richard StanwayandJim a282b1c64d libobs: Add ifdef for Windows-only variable assignment 2022-10-15 16:17:46 -07:00
Richard StanwayandJim cba81638b5 UI: Fix potential memory leak when parsing OBSThemeMeta 2022-10-15 16:17:46 -07:00
Richard StanwayandJim 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 StanwayandJim daee83373c UI: Remove unused assignments 2022-10-15 16:17:46 -07:00
PatTheMavandJim 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