Commit graph

76 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
fa8d66b951 code: Disable useless alignment styling and update standard 2023-05-14 03:25:07 +02:00
Michael Fabian 'Xaymar' Dirks
5b2e28a723 code: Disable profiling on MacOS
This may address a nullptr crash on MacOS with several features.
2023-04-05 19:21:13 +02:00
Michael Fabian 'Xaymar' Dirks
5a3954ae0e project: Fix License, License headers and Copyright information
Fixes several files incorrectly stated a different license from the actual project, as well as the copyright headers included in all files. This change has no effect on the licensing terms, it should clear up a bit of confusion by contributors. Plus the files get a bit smaller, and we have less duplicated information across the entire project.

Overall the project is GPLv2 if not built with Qt, and GPLv3 if it is built with Qt. There are no parts licensed under a different license, all have been adapted from other compatible licenses into GPLv2 or GPLv3.
2023-04-05 18:59:08 +02:00
Michael Fabian 'Xaymar' Dirks
08544b4116 cmake, code: Abuse pre-processor to disable/enable warnings 2023-04-05 18:58:39 +02:00
Michael Fabian 'Xaymar' Dirks
8e52bbf88b code: Ignore warnings from external code
May need to find a better solution such as disabling all warnings on third party code.
2023-04-05 18:58:38 +02:00
Michael Fabian 'Xaymar' Dirks
4fa26dd2d6 code: Always initialize or cast to correct type 2023-04-05 18:58:37 +02:00
Michael Fabian 'Xaymar' Dirks
0fe5c7e654 code: Don't use try-catch as function definition
This breaks MSVC and results in leaked exceptions.
2023-04-05 18:58:37 +02:00
lainon
6e1566386e project: Apply more C++ paradigms to the code
- Use auto in places where code clarity is improved or identical.
- Replace trivial constructors and destructors with default.
- Use true random for random generation.
- Use std::string_view where it is valid to do so.
- Apply const where it is valid to do so.
- Use references where it is valid to do so.
- Manually optimize memory usage with std::move and std::copy.
- Opt for memory efficient containers where the size is known ahead of time.

Signed-off-by: lainon <GermanAizek@yandex.ru>
2023-04-05 18:58:32 +02:00
Michael Fabian 'Xaymar' Dirks
cbddee5b90 nvidia: Assign to std::string_view& instead of swapping
For unknown reasons this results in an error only when the project is built within git-bash and with cmake. It does not occur with cmake-gui or VS itself.
2023-04-05 18:58:32 +02:00
Michael Fabian 'Xaymar' Dirks
e6ec0fc4c7 nvidia/ar/facedetection: Add Face Detection feature 2023-04-05 18:51:36 +02:00
Michael Fabian 'Xaymar' Dirks
c1ecfe70b3 nvidia/ar/feature: Add wrapper for AR features 2023-04-05 18:51:35 +02:00
Michael Fabian 'Xaymar' Dirks
913ac4b309 nvidia/ar: Add modern wrapper for Maxine AR SDK 2023-04-05 18:51:35 +02:00
Michael Fabian 'Xaymar' Dirks
c3440d2069 project: Remove undocumented "NVIDIA Face Tracking" feature
Originally intended to be an experiment with no future, it turned out to be very popular with streamers that move a lot. In the end it was popular enough that NVIDIA added their own variant to their Broadcast software, which works decently enough. Unfortunately my wrapper code around the library was written very poorly, so it didn't take long for it to break out of nowhere.
2023-04-05 18:51:35 +02:00
Michael Fabian 'Xaymar' Dirks
e4b15d0f73 nvidia/vfx/superresolution: Refactor onto effect class 2023-04-05 18:51:34 +02:00
Michael Fabian 'Xaymar' Dirks
8d029c97a2 nvidia/vfx/denoising: Refactor onto effect class 2023-04-05 18:51:34 +02:00
Michael Fabian 'Xaymar' Dirks
092ba2cad5 nvidia/vfx/greenscreen: Parent class already does this for us 2023-04-05 18:51:34 +02:00
Michael Fabian 'Xaymar' Dirks
883839ed2b nvidia/vfx/effect: Auto-assign model path, and optimize with const-reference
Improves code performance slightly and reduces overall code duplication.
2023-04-05 18:51:34 +02:00
Michael Fabian 'Xaymar' Dirks
39c2fdb943 nvidia/vfx: Optimize by returning a const-reference
Prevents a needless deep clone of the path object.
2023-04-05 18:51:34 +02:00
Michael Fabian 'Xaymar' Dirks
939ad35dd7 nvidia/cv: Publicly inherit from std::runtime_error
It wasn't possible to cast these exceptions to the underlying type, so they were treated as unknown exceptions.
2023-04-05 18:51:33 +02:00
Michael Fabian 'Xaymar' Dirks
26d854b7ce nvidia/vfx: Prefer AddDllDirectory over SetDefaultDllDirectories 2023-04-05 18:51:32 +02:00
Michael Fabian 'Xaymar' Dirks
6983be457a nvidia/cv: Prefer AddDllDirectory over SetDefaultDllDirectories 2023-04-05 18:51:32 +02:00
Michael Fabian 'Xaymar' Dirks
6d20280956 nvidia/vfx/greenscreen: Simple wrapper for the Green Screen effect 2023-04-05 18:51:30 +02:00
Michael Fabian 'Xaymar' Dirks
c714d932b8 nvidia/vfx/effect: Fix 'run()' defaulting to async and expose internals 2023-04-05 18:51:30 +02:00
Michael Fabian 'Xaymar' Dirks
fe4ed123d0 nvidia/cv: Add specialized exception 2023-04-05 18:51:30 +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
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
04c7116f5a project: Fix various warnings 2023-04-05 18:51:14 +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
Michael Fabian 'Xaymar' Dirks
cb88682f7c nvidia/vfx/superresolution: Add wrapper for Super-Resolution effect 2023-04-05 18:51:09 +02:00
Michael Fabian 'Xaymar' Dirks
02c6156f2e nvidia/vfx: Add wrapper for NVIDIA Video Effects SDK 2023-04-05 18:51:09 +02:00
Michael Fabian 'Xaymar' Dirks
04c3b88d5d nvidia/cv/texture: Wrapper for gs::texture Images 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
8784c91ec6 nvidia/cv/image: Wrapper for Images 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
84a7685d7b nvidia/cv: Add NVIDIA Computer Vision wrapper 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
7a94007283 nvidia/cuda: Don't be so extremely spammy 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
0f92a4b499 nvidia/cuda/obs: Release stream before context 2023-04-05 18:51:07 +02:00
Michael Fabian 'Xaymar' Dirks
0f56f822c3 nvidia/cuda/context: Don't try to destroy device contexts 2023-04-05 18:51:07 +02:00
Michael Fabian 'Xaymar' Dirks
6ba51efceb nvidia/cuda/context: Log the current device name, UUId und LUId 2023-04-05 18:51:07 +02:00
Michael Fabian 'Xaymar' Dirks
1a5dad8d97 nvidia/cuda: Add functions to get device name, UUId and LUId 2023-04-05 18:51:07 +02:00
Michael Fabian 'Xaymar' Dirks
7f5916dd72 nvidia/ar: Adjust to match coding guidelines 2023-04-05 18:51:05 +02:00
Michael Fabian 'Xaymar' Dirks
cd8abac142 nvidia/cuda: Adjust to match coding guidelines 2023-04-05 18:51:05 +02:00
Michael Fabian 'Xaymar' Dirks
dcd4f7f9f0 nvidia/cuda: Apply coding guidelines 2023-04-05 18:50:59 +02:00
Michael Fabian 'Xaymar' Dirks
c84c301d49 obs/gs: Apply coding guidelines 2023-04-05 18:50:59 +02:00
Michael Fabian 'Xaymar' Dirks
d62da72ce5 util: Apply coding guidelines 2023-04-05 18:50:57 +02:00
Michael Fabian 'Xaymar' Dirks
298e32dad4 nvidia/ar: Fix NVIDIA Trademark 2023-04-05 18:50:55 +02:00