Commit Graph

1570 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks 10921f56e3 ci: Add validation for Copyright headers
Strictly enforce up-to-date copyright headers using CI/CD.
2023-04-05 18:59:08 +02:00
Michael Fabian 'Xaymar' Dirks 5a3954ae0e project: Fix License, License headers and Copyright information
Fixes several files incorrectly stated a different license from the actual project, as well as the copyright headers included in all files. This change has no effect on the licensing terms, it should clear up a bit of confusion by contributors. Plus the files get a bit smaller, and we have less duplicated information across the entire project.

Overall the project is GPLv2 if not built with Qt, and GPLv3 if it is built with Qt. There are no parts licensed under a different license, all have been adapted from other compatible licenses into GPLv2 or GPLv3.
2023-04-05 18:59:08 +02:00
Michael Fabian 'Xaymar' Dirks c9ff7093d4 tools: Rate limit operation and fix strange buffer issues
Slightly relaxes the necessary amount of memory, as we are no longer loading everything all at once. Also for unknown reasons git interferes with other git processes running in the same repository only on Linux. This causes Linux runs of this tool to have strange issues detecting the authors, as git just quits with a success error code. Fun.
2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks a091b08259 tools: Don't use resolved path unless necessary 2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks d1ffa2c942 tools: Safely handle Ctrl-C and ignore some additional files
Don't want to scan files we don't own. Not the greatest solution, but it does work.
2023-04-05 18:59:07 +02:00
Michael Fabian 'Xaymar' Dirks bd8a574e7a tools: Actually check ignored files 2023-04-05 18:59:07 +02:00
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