Commit Graph

1552 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks 980c15efa6 ci: Improve/Fix MacOS and Ubuntu builds
Builds on Ubuntu incorrectly used gcc instead of g++ for C++ building, resulting in files that should never have worked. Switching this to g++ should drastically improve the stability of StreamFX on Linux.

Also on MacOS we use Homebrew to install the remaining tools, but failed to correctly install a specific version of it. As Homebrew only installs the latest version of a package to the global search path, this adjustment should fix the issue with clang-format.

Finally since I was already at it, I added clang-tidy integration and made the clang integration global. This way it does not need to be called on a per-project basis any more.
2023-04-05 18:59:03 +02:00
Michael Fabian 'Xaymar' Dirks 2871b9ccef cmake: Define global clang-tidy and clang-format targets 2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks d55d086a6d ci: Use https instead of http 2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks ad422895fa updater: Compare all parts of the version number
This should fix the case where comparing '0.12.0b164' with '0.12.0a169' results in it claiming the former is newer. Also should fix the case where stable releases would always be treated as older.

Fixes #1015
2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks b15fd787b6 cmake: Require generation of PATCH and TWEAK variables
Might fix the missing PROJECT_VERSION_TWEAK issue that has been encountered.
2023-04-05 18:59:02 +02:00
Michael Fabian 'Xaymar' Dirks b48c1db138 third-party: OBS Studio 29.0.0 uses 2023-01-06
The repository is still pointing at the previous obs-deps version, resulting in runtime link resolving errors.
2023-04-05 18:59:01 +02:00
Michael Fabian 'Xaymar' Dirks 64aeba7e14 ci: Allow manual OBS Deps Version and remove all set-output 2023-04-05 18:58:59 +02:00
Michael Fabian 'Xaymar' Dirks ac741116e8 third-party: Update NVIDIA Maxine SDKs 2023-04-05 18:58:59 +02:00
Michael Fabian 'Xaymar' Dirks 5fea3755c3 third-party: Update OBS Studio to 29.0.0
Should automatically update dependencies as well.
2023-04-05 18:58:59 +02:00
Michael Fabian 'Xaymar' Dirks 77ffb713bd third-party: Update OBS Studio to 29.0.0-beta2 2023-04-05 18:58:58 +02:00
Michael Fabian 'Xaymar' Dirks b88598a313 third-party: Update NVIDIA Maxine Video Effects SDK 2023-04-05 18:58:58 +02:00
Michael Fabian 'Xaymar' Dirks b6d99dc23e third-party: Update NVIDIA Maxine Augmented Reality SDK 2023-04-05 18:58:58 +02:00
Michael Fabian 'Xaymar' Dirks 77ecfda070 ci: Run on push to all branches 2023-04-05 18:58:58 +02:00
Xaymar ec182c2daf locale: New translations en-US.ini (Chinese Simplified) (#959) 2023-04-05 18:58:57 +02:00
Michael Fabian 'Xaymar' Dirks bc7f949c7b filter/blur: Don't increment your own reference count
Fixes #818
2023-04-05 18:58:57 +02:00
Michael Fabian 'Xaymar' Dirks 0f4f6d0485 gfx/source-texture: Don't use weak_source for strong references 2023-04-05 18:58:57 +02:00
Michael Fabian 'Xaymar' Dirks 7226fe7046 gfx/blur/box: Initialize streamfx::gfx::util 2023-04-05 18:58:56 +02:00
Michael Fabian 'Xaymar' Dirks 52afca38aa gfx/mipmapper: Move gs-mipmapper into proper directory
This is not an obs feature, so it shouldn't be in the obs directory.
2023-04-05 18:58:56 +02:00
Michael Fabian 'Xaymar' Dirks 8aa8745a3a gfx/util: Move draw_fullscreen_triangle here for consistency 2023-04-05 18:58:56 +02:00
Michael Fabian 'Xaymar' Dirks 9b8ef5ac74 gfx/util: Rename debug to util(ity)
They may be useful for debugging, but they are still utilities.
2023-04-05 18:58:55 +02:00
Michael Fabian 'Xaymar' Dirks c18c5e457a project: Improve templates and UX 2023-04-05 18:58:55 +02:00
Michael Fabian 'Xaymar' Dirks 6f742da524 plugin: Only initialize GLAD on OpenGL graphics backend 2023-04-05 18:58:54 +02:00
Michael Fabian 'Xaymar' Dirks 2577622dbe filter/dynamic-mask: Replace rendering code and optimize storage
The rendering code here was one of the older code bases, which was riddled with bugs and leaks. The new code doesn't look pretty, but it works for the time being until a better solution is found or made. It should be able to handle HDR inputs now, but it may not be completely correct yet. This also fixes the double-free bug.

As an additional improvement, I've moved the allocation of the effect to a shared class which should reduce the memory usage slightly when multiple effects are in play. And now selecting nothing selects the filter target itself without infinitely adding references to the filter. Good enough in my eyes.

Fixes #819
2023-04-05 18:58:54 +02:00
Michael Fabian 'Xaymar' Dirks 5b978a20e0 obs/source-factory: Add support for color spaces 2023-04-05 18:58:54 +02:00
Michael Fabian 'Xaymar' Dirks 15eaec2e09 obs/gs/rendertarget: Add support for color spaces 2023-04-05 18:58:53 +02:00
Xaymar 596841e6f8 locale: New Crowdin updates (#932)
* New translations en-US.ini (Danish)

* New translations en-US.ini (Spanish)

* New translations en-US.ini (Korean)

* New translations en-US.ini (Korean)

* New translations en-US.ini (Japanese)
2023-04-05 18:58:53 +02:00
Michael Fabian 'Xaymar' Dirks c0967e9252 encoder/ffmpeg: Remove usage of `avcodec_close`
This functionality has been deprecated by FFmpeg.
2023-04-05 18:58:53 +02:00
Michael Fabian 'Xaymar' Dirks 4236c28c58 ffmpeg/hwapi/d3d11: Only Release() the immediate ID3D11DeviceContext once
While this had no actual effect due to the immediate ID3D11DeviceContext being tied to the ID3D11Device itself, it shouldn't have occured at all. With this there should now only be a single Release() call for every AddRef() call.
2023-04-05 18:58:53 +02:00
Michael Fabian 'Xaymar' Dirks 0b23d28164 ffmpeg/hwapi/d3d11: Remove double unref 2023-04-05 18:58:52 +02:00
Michael Fabian 'Xaymar' Dirks 79bd387972 templates/windows/installer: Don't offer path selection for System & User mode
The location for System-wide and User-only installation depend on Windows-managed locations, which means that they will never require a user to select the correct location. Therefore it is best to hide the page in all modes except for Portable, which should still offer a path to extract to.
2023-04-05 18:58:52 +02:00
Michael Fabian 'Xaymar' Dirks 0390fbb05f templates/windows/installer: Default to appending default directory name 2023-04-05 18:58:52 +02:00
Michael Fabian 'Xaymar' Dirks 79e736bc75 templates/windows/installer: Opt for built-in Registry functions 2023-04-05 18:58:51 +02:00
Michael Fabian 'Xaymar' Dirks 53ceddd784 cmake, templates: Remove code signing integration
Time has unfortunately broken this integration beyond the point of usefulness.
2023-04-05 18:58:51 +02:00
Michael Fabian 'Xaymar' Dirks df12d2fb80 templates/windows/installer: Add command line flag for portable installation
Users of the Installer can now specify the `/Portable` flag in addition to other flags to install as Portable.
2023-04-05 18:58:51 +02:00
Michael Fabian 'Xaymar' Dirks 761f741c56 templates/windows/installer: Don't create Icons in Portable mode 2023-04-05 18:58:50 +02:00
Michael Fabian 'Xaymar' Dirks 39dc1fa5e1 configuration: Save after some time has passed
Prevents data loss after 100ms have passed, which should improve the saving situation.

Fixes #805
2023-04-05 18:58:50 +02:00
Michael Fabian 'Xaymar' Dirks 589f6c4018 plugin: Finalize threadpool after configuration 2023-04-05 18:58:50 +02:00
Michael Fabian 'Xaymar' Dirks 825f93fb24 cmake: Disable pointless structure padding warning 2023-04-05 18:58:49 +02:00
Michael Fabian 'Xaymar' Dirks fddf21b8de util/threadpool: Optimize for dynamic thread pooling
While the previous approach of a static thread pool worked, it was sub-optimal in its resource usage. Many of the threads would never see a single task, and simply permanently sleep. This seems like a good idea, except that sleeping threads still end up in the scheduler, and thus waste a tiny amount of resources.

It is better to instead dynamically spawn threads when needed and only keeping the bare minimum around all the time. These dynamically spawned threads are also explicitly set to background priority which further reduces scheduling overhead. Finally optimizing the memory layout to prevent unwanted false sharing should also keep sporadic wake ups at a minimum.

This new model should be able to handle many more tasks than ever before, but is still not as optimal as it could be.
2023-04-05 18:58:49 +02:00
Xaymar a7d15c7e60 locale: New Crowdin updates (#928)
* New translations en-US.ini (Russian)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Russian)

* New translations en-US.ini (Danish)

* New translations en-US.ini (Polish)

* New translations en-US.ini (Portuguese, Brazilian)

* New translations en-US.ini (Portuguese, Brazilian)
2023-04-05 18:58:49 +02:00
Michael Fabian 'Xaymar' Dirks 6701263e10 templates/windows/installer: Add current user installation method
Thanks to the PR by @abcdw (https://github.com/obsproject/obs-studio/pull/4067) we can support 'local user' installations. These will allow end users to install StreamFX without requiring Administrator rights, or learning how to use OBS Studio in portable mode.
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks 3ce695bccc templates/windows/installer: Install System-wide installations to ProgramData
With OBS Studio 0.15.0 came a better location for plugins to install to, which solves many of the current issues. While this location still requires Administrator rights to write to, it is a much safer location than writing directly into the OBS Studio installation directory.
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks 12c9fe51fb templates/windows/installer: Enable split binary and data installation
This is not something InnoSetup is designed for, but hey, it does work!
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks 63540faf3d templates/windows/installer: Formatting 2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks c9239405e2 templates/windows/installer: Don't warn about existing directories
Also don't append default directory name if possible.
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks a15d2d3c89 templates/windows/installer: Always show install directory selection 2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks 242a5dcac2 templates/windows/installer: Extract uninstaller to portable installations
It is now possible to properly uninstall StreamFX from portable installations, without any registry being necessary.
2023-04-05 18:58:47 +02:00
Michael Fabian 'Xaymar' Dirks 454f8eff83 templates/windows/installer: Check for the correct Mutexes 2023-04-05 18:58:47 +02:00
Xaymar 588316e3f1 locale: New Crowdin updates (#915)
* New translations en-US.ini (Danish)

* New translations en-US.ini (Chinese Simplified)

* New translations en-US.ini (Chinese Simplified)
2023-04-05 18:58:47 +02:00
Michael Fabian 'Xaymar' Dirks a0d60e751b encoder/handler/dnxhd: Use endian-independent formats 2023-04-05 18:58:46 +02:00