Commit graph

1577 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
ce19d25d71 ui/obs-browser-widget: Fix bad include path for standalone builds 2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
5a58aa8a6b ui/obs-browser-widget: Fix strange layout issue in Qt6
When a QCefWidget is alone and all by itself, no layout updates are performed on the "window". This causes a problem where it just stays in place, instead of moving with the rest of the elements. The fix to this appears to be to just add a different Qt widget into the layout.

Looks stupid, is stupid, but works anyway. Qt is weird.
2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
3187a165ba ui/obs-browser-widget: Allow directly modifying underlying widget 2023-04-05 19:08:30 +02:00
Michael Fabian 'Xaymar' Dirks
d073889126 ui/obs-browser-widget: Prevent unwanted crashes or corruptions on Wayland
The obs-browser module does not work well on Wayland, so removing it there appears to be the best option for now.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
f8dc0532e1 cmake: Require an up to date C standard as well, plus extensions
Fixes some strange compiler issues.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
dadd56b31d ui/obs-browser-widget: Integrate OBS Browser Source as a Qt Widget
Provides us with an easy and clean way to use Browser Sources as a Qt enabled widget.
2023-04-05 19:08:29 +02:00
Michael Fabian 'Xaymar' Dirks
54859e9f14 util/library: Allow loading of obs_module_t
Allows us to pass an obs_module_t into util::library::load() for cleaner code. This requires an additional flag so we don't unload a module that is still in use by libOBS.
2023-04-05 19:08:29 +02:00
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