Commit graph

1714 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
75e13996f1 tools: Only check for the section start/end signal, not the entire line 2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
d1e3b6d0d1 tools: Add tool to generate and update copyright headers
This tool aids in the proper upkeep of copyright headers for changes contained within this repository. It will generate a new header, or replace the original one if one exists. As this task has often been forgotten by both developers and contributors, having a tool manage this will hopefully improve the situation.

The choice of Node.JS for this tool was deliberate, as many developers and CI solutions already have Node.JS in a reasonably up to date version installed. Additionally the versatility of Node.JS eliminates the need to create custom or platform specific solutions for tasks that are relatively simple. While the performance is not ideal, it still completes its task relatively quickly.
2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
c80a19ae3c project: Update README to match latest info 2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
6c4df1e7e5 ui: Remove duplicate media files 2023-04-05 18:59:06 +02:00
Michael Fabian 'Xaymar' Dirks
7f3ab14128 cmake, code: Remove unused files
These files are not used, and serve no purpose.
2023-04-05 18:59:05 +02:00
Michael Fabian 'Xaymar' Dirks
dd3b1c279c ci: Cache previous builds for quicker iterative development
A full clean build is only required for releases, so opting for iterative builds will speed up CI builds significantly. As we can re-use caches from across branches, opting for the first matching key, this means that any branch should re-use the closest match from the main branch.

Downside is that this may break if there is a change to the CMakeLists.txt file, since the project configuration is now different. Might be fixable, but that's not the aim of these changes.
2023-04-05 18:59:05 +02:00
Michael Fabian 'Xaymar' Dirks
09e8e4b439 ci: Use multi-config generators to improve build speed
There's no need to split by configuration type on proper generators, which slightly speeds up the build. Downside is that we can't get builds for both Debug and RelWithDebInfo - though we only need the latter anyway.
2023-04-05 18:59:04 +02:00
Michael Fabian 'Xaymar' Dirks
587cefe5ce ci: Don't validate clang-tidy
Turns out to be very pointless, and usually doubles or triples the overall build time with no actual gain.
2023-04-05 18:59:04 +02:00
Michael Fabian 'Xaymar' Dirks
04e29a94b9 ci: Remove build variants that will never be used
Building for Qt5 is not necessary on Windows, MacOS or Ubuntu 22.04, as there are no supported OBS Studio versions that use these.
2023-04-05 18:59:04 +02:00
Michael Fabian 'Xaymar' Dirks
e8ec23c4d4 obs/source-tracker: Fix leaked source references
This functionality broke at some point in the past without anyone noticing, resulting in most dropdowns that rely on this functionality being blank.

Fixes #1025
2023-04-05 18:59:03 +02:00
Michael Fabian 'Xaymar' Dirks
5e307a8e36 project: Adjust clang-tidy configuration 2023-04-05 18:59:03 +02:00
tt2468
20e1a94eba util/threadpool: Initialize worker count to 0
Many platforms (and/or kernels) don't zero memory before it is acquired, resulting in uninitialized memory being used to store critical content. This made the threadpool assume it had an infinite number of threads to work with, despite actually having spawned none.

Fixes #1017
2023-04-05 18:59:03 +02:00
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