Michael Fabian 'Xaymar' Dirks
4b86d67517
obs/gs/effect: Only add defines to the top level shader
...
Fixes certain warnings that are caused by duplicate '#define' lines.
2023-04-05 18:51:46 +02:00
Michael Fabian 'Xaymar' Dirks
2962be9d52
obs/gs/effect: gs_get_device_type() requires graphics context
2023-04-05 18:51:45 +02:00
Michael Fabian 'Xaymar' Dirks
9859b44b1c
obs/gs/mipmapper: Enable support for sRGB mip-mapping
2023-04-05 18:51:45 +02:00
Michael Fabian 'Xaymar' Dirks
9f035deaaa
obs/gs/mipmapper: Don't cache the "source" parameter
...
Fixes #721
2023-04-05 18:51:45 +02:00
coolsoft.rf
4601df76d9
gfx/shader/param/texture: Add support for Texture parameters
...
Implements File, Source and Enumeration type for Texture shader inputs, completing the initial Shader implementation.
Related: #5
Co-authored-by: Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
2023-04-05 18:51:43 +02:00
Michael Fabian 'Xaymar' Dirks
1816e29862
gfx/shader: Optional sRGB support for inputs
2023-04-05 18:51:43 +02:00
Michael Fabian 'Xaymar' Dirks
93a20c7dd4
gfx/shader: Add profiling code and fix problems with properties
2023-04-05 18:51:43 +02:00
Michael Fabian 'Xaymar' Dirks
e1b7e6eaf2
gfx/shader: Get-er for currently loaded shader file
2023-04-05 18:51:43 +02:00
Michael Fabian 'Xaymar' Dirks
6f7c03fb28
obs/gs/effect-parameter: Add support for sRGB texture inputs
2023-04-05 18:51:42 +02:00
Michael Fabian 'Xaymar' Dirks
22786005d6
gfx/shader/param: Track the parent shader object
2023-04-05 18:51:42 +02:00
Michael Fabian 'Xaymar' Dirks
69a72d4975
gfx/shader: Add a way to retrieve the underlying obs_source_t*
2023-04-05 18:51:42 +02:00
coolsoft.rf
bba606e439
gfx/shader: Support for visible and active tracking in parameters
...
Co-authored-by: Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
2023-04-05 18:51:42 +02:00
coolsoft.rf
6aa3f6dbc2
gfx/shader: De-duplicate some code paths
...
Co-authored-by: Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
2023-04-05 18:51:41 +02:00
Michael Fabian 'Xaymar' Dirks
d1fdab45fc
filter/transform: Fix mip-map level calculation
2023-04-05 18:51:40 +02:00
Michael Fabian 'Xaymar' Dirks
10ec6a7ad2
obs/gs/mipmapper: Add support for OpenGL
2023-04-05 18:51:40 +02:00
Michael Fabian 'Xaymar' Dirks
655ff6e367
third-party: Add GLAD OpenGL wrapper
2023-04-05 18:51:40 +02:00
Michael Fabian 'Xaymar' Dirks
ab6ba5ee4c
encoder/ffmpeg/nvenc: Swap parameter names in migration code
2023-04-05 18:51:39 +02:00
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