Commit graph

840 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
a7faa2e445 filter/transform: Enable Anisotropic Filtering with Mip-Mapping 2023-04-05 18:51:29 +02:00
Michael Fabian 'Xaymar' Dirks
150b728419 filter/transform: Implement 'Corner Pin' mode
'Perspective' and 'Orthographic' work great if you know what the parameters were to generate the exact object position, but what if you don't know them? That is where 'Corner Pin' comes in! With it you can specify the exact location of every corner down to the micro-pixel, instead of fiddling with parameters.

Fixes #565
2023-04-05 18:51:29 +02:00
Michael Fabian 'Xaymar' Dirks
e0c6e55259 filter/transform: Modernize code base for future expansion 2023-04-05 18:51:29 +02:00
Michael Fabian 'Xaymar' Dirks
a40021b17b filter/transform: Migrate a number of settings for future use 2023-04-05 18:51:29 +02:00
Michael Fabian 'Xaymar' Dirks
948976fce1 effects: Add Draw, DrawPremultiplied to 'standard.effect' 2023-04-05 18:51:29 +02:00
Michael Fabian 'Xaymar' Dirks
cc9fa6de8f locale: Remove any unused Strings 2023-04-05 18:51:28 +02:00
Michael Fabian 'Xaymar' Dirks
a7cf5bd941 encoder/ffmpeg: Adjust i18n identifiers to match other parts of code 2023-04-05 18:51:28 +02:00
Michael Fabian 'Xaymar' Dirks
3ebaf9ea30 encoder/ffmpeg: Remove color format and compliance choice
As people appear to be far too willing to mess with settings they have absolutely no reason to mess with, removing these seems like the best option. Both of these can still be set if you know where to look, and aren't actually required for operation at all.
2023-04-05 18:51:28 +02:00
Michael Fabian 'Xaymar' Dirks
4fea923371 ui: Update StreamFX's menu with new Links 2023-04-05 18:51:25 +02:00
Michael Fabian 'Xaymar' Dirks
e3563c7cf4 filter/dynamic-mask: Prevent recursive filter graphs 2023-04-05 18:51:25 +02:00
Michael Fabian 'Xaymar' Dirks
6a6929105a ffmpeg: Fix print_av_option_string2 printing wrong names 2023-04-05 18:51:25 +02:00
Michael Fabian 'Xaymar' Dirks
b122785bd1 encoder/ffmpeg/nvenc: Fix migration code causing issues 2023-04-05 18:51:25 +02:00
Michael Fabian 'Xaymar' Dirks
6473882c57 encoder/ffmpeg/nvenc: Add Reference Frames and remove useless settings 2023-04-05 18:51:25 +02:00
Michael Fabian 'Xaymar' Dirks
b1a35118ee encoder/ffmpeg/nvenc: Fix localization file order 2023-04-05 18:51:24 +02:00
Michael Fabian 'Xaymar' Dirks
7e9e9e037d encoder/ffmpeg/nvenc: Fix missing settings and CQ being applied in CBR mode 2023-04-05 18:51:24 +02:00
Michael Fabian 'Xaymar' Dirks
e2efc01917 encoder/aom-av1: Add CPU Usage 10 2023-04-05 18:51:24 +02:00
Michael Fabian 'Xaymar' Dirks
a628dfebae encoder/aom-av1: Respect "Default" setting for Metric tune setting 2023-04-05 18:51:23 +02:00
Michael Fabian 'Xaymar' Dirks
8250e63fd3 encoder/aom-av1: Fix automatic selection of AV1 profile 2023-04-05 18:51:23 +02:00
Michael Fabian 'Xaymar' Dirks
2abbbfe133 encoder/aom-av1: Bitrate Overshoot only goes to 100% 2023-04-05 18:51:23 +02:00
Michael Fabian 'Xaymar' Dirks
d0762e7150 nvidia/vfx/superresolution: Reduce overall CPU usage by caching results 2023-04-05 18:51:22 +02:00
Michael Fabian 'Xaymar' Dirks
d1c8cda0a3 nvidia/vfx/superresolution: Automatically select ideal scale factors
Prevents some scale factors from simply not rendering anything at all, resulting in weird scene layouts. While this may incur a higher performance penalty, it does fix the issue with enough accuracy to be deployed into production.
2023-04-05 18:51:22 +02:00
Michael Fabian 'Xaymar' Dirks
5952dfe73f filter/upscaling: Restore alpha after processing
As none of the known Upscaling algorithms handle Alpha, we need to manually restore and interpolate it properly. While this technically reduces visual quality slightly, the chances of this being noticed are slim to none considering that Upscaling is already a questionable solution to quality. Linear was picked here as it produces the best overall result for scaling, keeping gradients mostly in one piece. Mostly.

Fixes #646
2023-04-05 18:51:22 +02:00
Michael Fabian 'Xaymar' Dirks
fc479bcdaf filter/denoising: Restore alpha after processing
As the Alpha channel is completely ignored and possibly destroyed by denoising algorithms, we should restore the Alpha channel manually. Linear interpolation was chosen here as it will behave like Point if the size matches, and properly interpolate if the size doesn't match.

Fixes: #646
2023-04-05 18:51:22 +02:00
Michael Fabian 'Xaymar' Dirks
e40e7526de filter/upscaling: Update Source Identifier 2023-04-05 18:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
0e5709f7da filter/denoising: Update Source Identifier 2023-04-05 18:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
f9c03f2c86 filter/denoising: Don't denoise the same image twice 2023-04-05 18:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
3735627b13 filter/denoising: Use actual size instead of base size of target 2023-04-05 18:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
45cedde1ae filter/denoising: Restrict size to reasonable numbers
Prevents invalid sizes from being used by the filter, which sometimes happens with Async Sources that aren't quite ready yet.

Fixes: #642
2023-04-05 18:51:20 +02:00
Michael Fabian 'Xaymar' Dirks
a5166c409e filter/denoising: Fix incorrect define checks 2023-04-05 18:51:19 +02:00
Michael Fabian 'Xaymar' Dirks
0ff1e3145d locale: Adjust text to match reality 2023-04-05 18:51:18 +02:00
Michael Fabian 'Xaymar' Dirks
247553fa74 filter/denoising: Add Denoising filter 2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
843a76d1c6 filter/upscaling: 'Video Super-Resolution' -> 'Upscaling'
The previous name was too strict on what could be put into the effect, and would result in additional clutter in the Filter menu when we eventually decide to support other Upscaling methods than Super-Resolution networks.
2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
03e6ce0dbc filter/video-superresolution: Fix missing UI when selecting Providers 2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
37666b0dc1 filter/video-superresolution: Fix incorrect symbol name 2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
496fe424f4 filter/video-superresolution: Catch all exceptions 2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
33c665982e nvidia/vfx/denoising: Add wrapper for Denoising effect 2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
cebd8fa744 nvidia/vfx/effect: Implement managed effect wrapper
Slightly simplifies interaction with effects.
2023-04-05 18:51:16 +02:00
Michael Fabian 'Xaymar' Dirks
7c7ea3c3b6 nvidia/vfx/superresolution: Round to nearest instead of truncate
Slightly improves the accuracy of the scaled size calculations.
2023-04-05 18:51:16 +02:00
Michael Fabian 'Xaymar' Dirks
772d21a8b6 nvidia/cuda: Add cuMemsetD# functions 2023-04-05 18:51:15 +02:00
Michael Fabian 'Xaymar' Dirks
9a4ab558c0 encoders/aom-av1: AV1 encoder based on libaom 2023-04-05 18:51:15 +02:00
Michael Fabian 'Xaymar' Dirks
12f976fde3 obs/encoder-factory: Don't require implementing all virtual functions
As not all encoders need all functions, classes inheriting from this should not need to implement all of them as no-ops. Instead the header should take care of this, which reduces duplicated empty code paths.
2023-04-05 18:51:14 +02:00
William Pettersson
3eacc47085 util/logging: Don't reuse vargs (#632)
As vargs may be modified by some functions, we should not reuse it and instead create a copy of it. This fixes a segfault on logging calls happening with GCC, and potentially may fix other compilers and platforms as well.
2023-04-05 18:51:14 +02:00
Michael Fabian 'Xaymar' Dirks
04c7116f5a project: Fix various warnings 2023-04-05 18:51:14 +02:00
Michael Fabian 'Xaymar' Dirks
380d75f770 project: Unify logging structure 2023-04-05 18:51:14 +02:00
Michael Fabian 'Xaymar' Dirks
b8f23fa8ab project: Don't leak exceptions if possible 2023-04-05 18:51:13 +02:00
Michael Fabian 'Xaymar' Dirks
4943b697bc encoder/ffmpeg: Fix incorrect translations 2023-04-05 18:51:12 +02:00
Michael Fabian 'Xaymar' Dirks
4b36c91fe8 plugin: Don't leak CUDA load exceptions 2023-04-05 18:51:12 +02:00
Michael Fabian 'Xaymar' Dirks
2c4e001751 nvidia/vfx/superresolution: Use resize instead of reallocate 2023-04-05 18:51:11 +02:00
Michael Fabian 'Xaymar' Dirks
cfc463ec0d nvidia/cv/image: Store alignment for later use 2023-04-05 18:51:11 +02:00
Michael Fabian 'Xaymar' Dirks
faf85138fe nvidia/cv: NvCVImage_Dealloc returns void 2023-04-05 18:51:11 +02:00