Commit Graph

70 Commits

Author SHA1 Message Date
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
Michael Fabian 'Xaymar' Dirks 3c760d8e9c filters/nvidia-face-tracking: Update for new SDK and OBS 27.x 2023-04-05 18:50:53 +02:00
Michael Fabian 'Xaymar' Dirks 47ef5dd995 nvidia/cuda: Add function to query version directly 2023-04-05 18:50:52 +02:00
Michael Fabian 'Xaymar' Dirks f316e0aa70 nvidia/cuda: Update to match CUDA 11.1 and later
Adds several new functions that may be required for operation
2023-04-05 18:50:52 +02:00
Michael Fabian 'Xaymar' Dirks 70f54b312b nvidia/cuda: Print the Driver CUDA version to the log 2023-04-05 18:50:52 +02:00
Michael Fabian 'Xaymar' Dirks fc05b3e4d2 nvidia/ar: Fix bad function definition 2023-04-05 18:50:51 +02:00
Michael Fabian 'Xaymar' Dirks 5adebc5f03 project: Apply formatting 2023-04-05 18:50:51 +02:00