Michael Fabian 'Xaymar' Dirks
50a23799b0
filter/transform: Swap parameter names in migration code
2023-04-05 18:51:39 +02:00
Michael Fabian 'Xaymar' Dirks
e954e86308
encoder/ffmpeg: libOBS samples Chroma at Top, not Center
...
This bug predates the merge into StreamFX and was present in the original release as a separate plugin. libOBS has never sampled Chroma at Center as far as I can look back into its history.
Fixes #676
2023-04-05 18:51:38 +02:00
Michael Fabian 'Xaymar' Dirks
29bbe22bec
obs/gs/effect: Preprocess shaders to improve platform compatibility
...
Improves cross-platform compatibility of Shaders written for StreamFX through the use of preprocessing to make things a bit more compatible. While we don't perform any proper parsing, this will be able to prevent basic issues.
2023-04-05 18:51:38 +02:00
Michael Fabian 'Xaymar' Dirks
2ccbd76c02
util/library: Don't mix incompatible parameters
2023-04-05 18:51:37 +02:00
Michael Fabian 'Xaymar' Dirks
aeb889091e
filter/autoframing: Remaining part of ff235b765e
2023-04-05 18:51:37 +02:00
Michael Fabian 'Xaymar' Dirks
2b3535f089
filter/autoframing: Allow specifying Tracking Frequency in Hz
2023-04-05 18:51:36 +02:00
Michael Fabian 'Xaymar' Dirks
ad3ac69cd7
filter/auto-framing: Frame your face, automatically!
2023-04-05 18:51:36 +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
28fa127ead
gfx/debug: Helper class to handle common debug rendering
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
25dc14f805
util/library: Load wstring instead of string
2023-04-05 18:51:33 +02:00
Michael Fabian 'Xaymar' Dirks
f0b0b0d33d
filter/denoising: Wait for internal task to be completed
2023-04-05 18:51:33 +02:00
Michael Fabian 'Xaymar' Dirks
926cb740b3
filter/upscaling: Wait for internal task to be completed
2023-04-05 18:51:33 +02:00
Michael Fabian 'Xaymar' Dirks
21f872edfc
filter/virtual-greenscreen: Wait for internal task to be completed
2023-04-05 18:51:33 +02:00
Michael Fabian 'Xaymar' Dirks
97318eacac
util/threadpool: Allow waiting for task completion
2023-04-05 18:51:33 +02:00
Michael Fabian 'Xaymar' Dirks
a7fd867be6
filter/upscaling: Set correct parameters to the appropriate textures
2023-04-05 18:51:32 +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
a56f3816a1
util/library: Force specific search directories
2023-04-05 18:51:31 +02:00
Michael Fabian 'Xaymar' Dirks
90bb03779c
filter/virtual-greenscreen: Add Virtual Greenscreen filter
2023-04-05 18:51:31 +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
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
Michael Fabian 'Xaymar' Dirks
bb03864664
filter/video-superresolution: Add Video Super-Resolution filter
2023-04-05 18:51:09 +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
6fc18faab0
util/profiler: Adjust to match coding guidelines
2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
61c143a0c8
util: Add is_close function
2023-04-05 18:51:07 +02:00
Michael Fabian 'Xaymar' Dirks
5279993f4b
plugin: If CUDA is requested, ensure it is loaded first
2023-04-05 18:51:07 +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
b4c7d5f91c
util/library: Convert paths to native format
2023-04-05 18:51:06 +02:00
Michael Fabian 'Xaymar' Dirks
57f15b64f7
util/platform: Add Path and String conversion utility functions
2023-04-05 18:51:06 +02:00
Michael Fabian 'Xaymar' Dirks
8d7f2ffec7
filter/nv-face-tracking: Adjust to match coding guidelines
2023-04-05 18:51:05 +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
733b325f98
gfx/blur/dual-filtering: Clean up code
...
Cleans up the code slightly, without affecting actual functionality
2023-04-05 18:51:02 +02:00
Michael Fabian 'Xaymar' Dirks
011bee032a
gfx/blur/gaussian: Fix Gaussian Kernel generation
...
While the previous method worked, it matches no other implementation including a reference implementation. The new implementation almost perfectly matches the reference implementation and uses oversampling to achieve the goal. This has the downside of limiting the blur size to just 64, but it is necessary in order to achieve correct results.
Fixes #573
2023-04-05 18:51:01 +02:00
Michael Fabian 'Xaymar' Dirks
8a10ca93e5
util: Add Pascal Triangle and integer power
2023-04-05 18:51:01 +02:00
Michael Fabian 'Xaymar' Dirks
cda430ccad
gfx/shader: Apply coding guidelines
2023-04-05 18:51:01 +02:00
Michael Fabian 'Xaymar' Dirks
66ecc90988
filter/blur: Apply coding guidelines
2023-04-05 18:51:00 +02:00
Michael Fabian 'Xaymar' Dirks
5cdf3d1201
filter/displacement: Apply coding guidelines
2023-04-05 18:51:00 +02:00
Michael Fabian 'Xaymar' Dirks
d9d66a19af
filter/dynamic-mask: Apply coding guidelines
2023-04-05 18:51:00 +02:00
Michael Fabian 'Xaymar' Dirks
5b0a8cf759
filter/sdf-effects: Apply coding guidelines
2023-04-05 18:50:59 +02:00
Michael Fabian 'Xaymar' Dirks
ed84b7bd3e
filter/shader: Apply coding guidelines
2023-04-05 18:50:59 +02:00
Michael Fabian 'Xaymar' Dirks
f3a1a85340
filters/transform: Apply coding guidelines
2023-04-05 18:50:59 +02:00
Michael Fabian 'Xaymar' Dirks
578d84be63
gfx: Apply coding guidelines
2023-04-05 18:50:59 +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
015fac588b
obs: Apply coding guidelines
2023-04-05 18:50:58 +02:00
Michael Fabian 'Xaymar' Dirks
82ed11e6c1
source/mirror: Apply coding guidelines
2023-04-05 18:50:58 +02:00
Michael Fabian 'Xaymar' Dirks
2622fd9a3c
source/shader: Apply coding guidelines
2023-04-05 18:50:58 +02:00
Michael Fabian 'Xaymar' Dirks
94e947df03
transition/shader: Apply coding guidelines
2023-04-05 18:50:58 +02:00
Michael Fabian 'Xaymar' Dirks
eb61112d76
util: Remove unused legacy function
2023-04-05 18:50:58 +02:00
Michael Fabian 'Xaymar' Dirks
d62da72ce5
util: Apply coding guidelines
2023-04-05 18:50:57 +02:00
Michael Fabian 'Xaymar' Dirks
1c067b3b5d
project: Apply coding guidelines
2023-04-05 18:50:57 +02:00
Michael Fabian 'Xaymar' Dirks
4ead07c23a
ffmpeg: Apply coding guidelines
2023-04-05 18:50:57 +02:00
Michael Fabian 'Xaymar' Dirks
67e122eb65
encoders/codecs: Apply coding guidelines
2023-04-05 18:50:57 +02:00
Michael Fabian 'Xaymar' Dirks
0d13d43dd8
encoders/handlers/amf: Apply coding guidelines
2023-04-05 18:50:56 +02:00
Michael Fabian 'Xaymar' Dirks
13d80dbfbe
encoders/handlers/nvenc: Apply coding guidelines
2023-04-05 18:50:56 +02:00
Michael Fabian 'Xaymar' Dirks
05c6b54838
encoders/ffmpeg: Apply coding guidelines
2023-04-05 18:50:56 +02:00
Michael Fabian 'Xaymar' Dirks
2fa423ca1f
filters/color-grade: Apply coding guidelines
2023-04-05 18:50:56 +02:00
Michael Fabian 'Xaymar' Dirks
b535dec38b
encoders/handlers/nvenc: Fix NVIDIA trademark
2023-04-05 18:50:56 +02:00
Michael Fabian 'Xaymar' Dirks
dbfd27860c
filters/nv-face-tracking: Apply coding guidelines
2023-04-05 18:50:56 +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
96c7b101e5
obs/gs/texture: Add new flags and fix flag decoding
2023-04-05 18:50:53 +02:00
Michael Fabian 'Xaymar' Dirks
1d183ae680
uitl/bitmask: Add 'has' function
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
3c05d892e6
filter/nvidia-face-tracking: Update to nvidia::cuda::obs
2023-04-05 18:50:52 +02:00
Michael Fabian 'Xaymar' Dirks
18afbdea25
filter/nvidia-face-tracking: Update to new CUDA code
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
Michael Fabian 'Xaymar' Dirks
7bedb337b9
nvidia/cuda/obs: Add simple CUDA manager for OBS
2023-04-05 18:50:51 +02:00
Michael Fabian 'Xaymar' Dirks
c0a108bf4a
nvidia/cuda/stream: Add synchronize function
2023-04-05 18:50:51 +02:00
Michael Fabian 'Xaymar' Dirks
4dac477500
nvidia/cuda/gs-texture: Add accessors for internals
2023-04-05 18:50:51 +02:00
Michael Fabian 'Xaymar' Dirks
5cd1d13d5f
nvidia/cuda/context: Merge context-stack into context header
2023-04-05 18:50:50 +02:00
Michael Fabian 'Xaymar' Dirks
7b38114469
nvidia/cuda: Log extra information when built for Debug
2023-04-05 18:50:50 +02:00
Michael Fabian 'Xaymar' Dirks
9332d9377c
nvidia/cuda: Add custom exception for CUDA
2023-04-05 18:50:50 +02:00
Michael Fabian 'Xaymar' Dirks
98f711523e
nvidia/cuda: Use util::library and remove CUDA library argument
...
The CUDA library is always available as a singleton, so it does not make sense for it to be passed in. Instead we can simply grab it from the singleton and use it as it is, which makes the code easier to maintain and automates certain code.
2023-04-05 18:50:50 +02:00
Michael Fabian 'Xaymar' Dirks
b4a229e26f
util/logging: Add logging utility
...
Also contains the function signature and name macros.
2023-04-05 18:50:49 +02:00
Michael Fabian 'Xaymar' Dirks
ab22b0d69e
ui/about: Update Supporter and Translator entries
2023-03-28 13:11:22 +02:00
Michael Fabian 'Xaymar' Dirks
d1c5cb4fce
ui/about: Fix stack size problem
2023-03-28 13:11:22 +02:00
Michael Fabian 'Xaymar' Dirks
d1747ff403
ui/about: Remove outdated entry roles
2023-03-28 13:11:21 +02:00
Michael Fabian 'Xaymar' Dirks
f040588570
ui/about: Replace buttons with clickable Entries
...
This reduces the total amount of links Supporters can submit to just one instead of two. Additionally by removing the buttons and making the entry itself clickable, the UI can show more entries at once and allow users to easily make the connection between the entry and the link it opens when clicked.
2023-03-28 13:11:21 +02:00
Michael Fabian 'Xaymar' Dirks
3533a86b96
ffmpeg/tools: Adjust to match ffmpeg-mux color settings
...
The 'obs-ffmpeg-mux.c' file specifies different color parameters than StreamFX does. This causes re-muxing to go haywire, and editors that trust these tags suddenly spew out bad colors for BT.601 and sRGB.
Reverts #478
2023-03-28 13:11:21 +02:00
Michael Fabian 'Xaymar' Dirks
ba61329dd1
ui: Prevent Qt from automatically assigning Menu roles
...
Qt defaults to give every QAction a TextHeuristicRole, which means that certain key words will cause Qt to change how the QAction behaves. We do not want this, so we explicitly assign it to have NoRole instead.
Fixes #323
2023-03-28 13:11:21 +02:00
Michael Fabian 'Xaymar' Dirks
465158476a
ui: Insert StreamFX menu before OBS "Help" menu
...
Instead of adding ourselves as the last entry which seems to confuse the MacOS Qt implementation, we instead insert ourselves before the Help menu. This should hopefully prevent the StreamFX menu from overriding the OBS About entry.
Fixes #323
2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks
f01d2e6db1
filters/sdf-effects: Improve user experience with visual property groups
...
Grouping properties by what they do improves the user experience as the user does not have to guess at what belongs to which part of the effect. Additionally toggleable groups automatically disable all child elements, so the user is not confused by them still being active.
2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks
a8c8d3beaa
filters/displacement: Permanently deprecate the filter
2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks
5a65cf3525
plugin: Replace long descriptions with "Open Manual" button
...
While the long descriptions were useful, keeping the updated and translated is pretty much impossible. Technology moves fast and not everyone that translates the project knows a lot about technology.
Therefore the long descriptions have now been replaced with a button that opens the wiki page for the feature instead. This should drastically reduce the number of help cases, and improve the translation coverage at the same time.
2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks
48ba34538e
plugin: Add function to open an URL
2023-03-28 13:11:19 +02:00
Michael Fabian 'Xaymar' Dirks
21d455b674
filters/color-grading: Add proper suffixes to UI properties
2023-03-28 13:11:19 +02:00
Michael Fabian 'Xaymar' Dirks
cd7f45eec4
source/shader: Fix missing buffered draw requirement ( #516 )
...
Fixes #516
2023-03-28 13:11:19 +02:00
Michael Fabian 'Xaymar' Dirks
b324ed2b28
filters/color-grading: Adjust range for Lift and Gain ( #515 )
...
Fixes #515
2023-03-28 13:11:19 +02:00
Michael Fabian 'Xaymar' Dirks
0a44333c11
transition/shader: Use direct rendering ( #501 )
2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks
a2f518224f
source/shader: Use direct rendering ( #501 )
2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks
4a3d1d4fa5
filter/shader: Use direct rendering ( #501 )
2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks
e7dd44e3ec
gfx/shader: Allow specifying effect for direct rendering ( #501 )
2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks
4e21830627
filter/dynamic-mask: Require buffered rendering
2023-03-28 13:11:17 +02:00
Michael Fabian 'Xaymar' Dirks
ed92e7390a
filter/displacement: Require buffered rendering
2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks
29d60180cc
filter/color-grade: Add direct rendering support ( #501 )
2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks
4c082ad3a9
filters/color-grade: Fix support for translucent Inputs
...
Additionally also document some of the code and enforce certain GPU states for rendering.
2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks
303c14de4e
ffmpeg/tools: Fix incorrect transfer characteristics
...
Both Rec. 601 and sRGB looked extremely wrong before, resulting in weird or warped colors. Since it is very difficult to find up to date and accurate information on standards, we should simply go for what has the most widespread support.
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
1909ee01d6
obs/gs/vertex: Don't include unused headers
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
b0ac0b724a
nvidia/cuda: Use reinterpret_case instead of static_cast
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
26a76e0451
filters/color-grade: Redesign for use with LUTs
...
There is hardly any reason for us to recalculate everything all the time. LUTs can cache the work once, and then re-use it every time necessary, drastically reducing the impact of Color Grading by almost 60% (on some GPUs even more). Additionally this fixes the negative gamma issue, which plagued the filter for a while.
In the future, once PR 4199 (https://github.com/obsproject/obs-studio/pull/4199 ) has been merged, we can cut away one intermediate rendering step currently required to make the effect work. Hopefully this will be with the 27.x release of OBS Studio.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks
eba0a467d5
gfx/lut: Add a simple but efficient LUT producer and consumer
...
For simple image and video editing, LUTs (Look-Up Tables) are vastly superior to running the entire editing operation on each pixel - especially if all the processing can be done inside a single shader.
Due to the post-processing requirements for our LUTs, we are limited to 8 bits per channel - though clever use of the unused Alpha channel may result in additional space. For our purposes however, this is definitely enough.
2023-03-28 13:11:11 +02:00
tytan652
6ccac3331a
ui: Don't reference Updater if it's been disabled
...
Merges #446
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
5ac894c59c
cmake: Refactor component and dependency system
...
A complete redesign of the component and dependency system is necessary in order to support additional platforms, such as MacOS and other Linux platforms. Additionally it results in a much cleaner code base, which is less confusing overall.
Eventually it might be necessary to push components of StreamFX into their own CMake projects, as it is getting kind of complex now. Especially with the push for a proper plugin manager, things get dicey for big plugins like StreamFX.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
b8ff72d6c8
sources/mirror: Clamp minimum size to 1x1
...
This works around an issue in our code with asynchronous or delayed sources.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
675186a737
ui: Fix additional Qt issues
2023-03-28 13:11:07 +02:00
Xaymar
2c37e19266
ui/updater: Don't require Qt interaction before OBS is ready ( #427 )
...
Fixes one of the launch freezes caused by StreamFX due to interaction with the Qt message loop.
2023-03-28 13:11:07 +02:00
Michael Fabian 'Xaymar' Dirks
e7992cd776
source/mirror: Don't ignore data in initializer
2023-03-28 13:11:07 +02:00
Michael Fabian 'Xaymar' Dirks
3c2fbf2dc4
filter/shader: Initialize with given data
...
Ignoring the data parameter during initialization results in duplication and some third party plugins not working as expected, so it's better to not ignore it.
Fixes #315
2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks
17ffbdc55e
gfx/shader: Correctly cache shader rendering result
...
Fixes #392
2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks
ff3f8cff03
encoders/ffmpeg: Implement AMF H.264 and H.265 handlers
...
Adds support for the AMD Advanced Media Framework H.264 and H.265 encoders via FFmpeg. The majority of settings are supported, and the UI/UX experience mimics that of the NVENC implementation. Various settings are left out due to their complexity and should be controlled via the custom parameters field.
2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks
79ef573f5b
filter/dynamic-mask: Explicitly increase showing/active references
...
Fixes #384
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
716da4f6cc
obs/tools: Add active_source and visible_source helpers
...
These classes help us manage active and showing references to a source, which seem to be necessary for filters.
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
ad33066cd3
filter/blur: Fix unicode support
...
Related: #359
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
e2d342818a
filter/color-grade: Fix unicode support
...
Related: #359
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
576606c712
filter/displacement: Fix unicode support
...
Related: #359
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
3da4526795
filter/dynamic-mask: Fix unicode support
...
Related: #359
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
785ffa0b7d
filter/sdf-effects: Fix unicode support
...
Related: #359
2023-03-28 13:11:05 +02:00
Michael Fabian 'Xaymar' Dirks
54127f6ced
gfx/shader: Fix unicode support
...
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
aacb1d41bc
obs/gs/effect: Fix unicode support
...
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
cc1b9c1559
obs/gs/mipmapper: Fix unicode support
...
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
0a71af9d6a
util/library: Fix unicode support
...
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
55ad82aac0
gfx/blur: Fix unicode support
...
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
71a969c30f
configuration: Fix unicode support
...
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
4de094511a
plugin: Implement proper functions to get config and data files
...
Using the obs_module_file and obs_module_config_path macros works okay, but it comes with a slight overhead as well as additional requirements when passing it to C++ functions that expect certain rules to be fulfilled. By instead wrapping the actual functionality into our own functions and using those we can avoid most of the issues that come with the old approach.
Related: #359
2023-03-28 13:11:04 +02:00
Michael Fabian 'Xaymar' Dirks
f796c85527
util/bitmask: Move bitmask functionality its own file
2023-03-28 13:11:03 +02:00
Michael Fabian 'Xaymar' Dirks
7e7ed80a9a
util/library: Use string_view instead of string
...
Slightly improves performance and reduces memory impact, as string data is not duplicated.
2023-03-28 13:11:03 +02:00
Michael Fabian 'Xaymar' Dirks
032a3c6deb
obs/source-factory: Skip broken filter rendering by default
...
Fixes a black screen issue if a filter happens to run into an unexpected issue which it considers unrecoverable.
2023-03-28 13:11:03 +02:00