Commit graph

1717 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
0e913edccf Update component logic to support required and optional resolving
This allows resolving a dependency tree up to 10 elements deep, but a different solution may be necessary in the future. A better alternative in the future might be to keep a copy of the unresolved entries and then compare every loop, instead of limiting to a fixed number of cycles.

This currently doesn't address cyclic dependencies, since I'm not quite sure how those would work with the current model anyway.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
92b93a2479 nvidia: Add optional dependencies to the NVIDIA component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
a48a32931a Update build guide with latest instructiosn 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
434936baf6 Split Find/Resolve/Link component discovery stages 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
7c887c06e8 nvidia: Move into its own component
This component enables interactivity with NVIDIA libraries. Currently this is limited to NVIDIA Maxine only.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
090f49d3c8 Add NVIDIA Maxine Audio Effects SDK as a third party dependency 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
e6c81ca71e Always build Frontend and Updater
We now require these features all the time, as they are becoming more of a core part of the StreamFX UI. Additionally several components rely on these already being present, so omitting them is not a great idea.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
72b0daca05 upscaling: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
484c790c2a virtual-greenscreen: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
e3ddbe4336 denoising: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
d7d8253518 autoframing: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
7ebe4f5631 sdf-effects: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
65e91fbbc4 mirror: Move into its own component
Soon to be replaced by Spout/Sink
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
5d5852c8f7 color-grade: Move into its own component
Another re-usable code section that never got reused. This one is actually more useful, so I might split it into its own component eventually.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
4f845ac996 blur: Move into its own component
This still contains some of the old reusable code, which was never used in the first place. I'm unsure what the end goal for it was, as nothing really ended up using it anywhere else.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
02f8ca8d83 transform: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
792bf163b4 dynamic-mask: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
ecaf39bee1 shader: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
d5cf2d2ccf ffmpeg: Move into its own component
While we're at it, let's also fix the invalid destructor, as well as the NVENC HEVC encoder incorrectly using H264.Level to store H265.Level.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
d2a543f118 core: Clean up some older C++ code
- Remove float_t and double_t usage, as they aren't related to sized types.
- Remove unused aligned types, their usage has been replaced quite a while ago.
- Update the templates for pow and is_power_of_two.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks
6b02b76e6c Add prefix to commit titles when needed 2023-09-30 09:25:30 +02:00
brighten
cfcf975794 fix: add decimal place to remove ambiguity
error: Error compiling shader:
0(142) : error C1101: ambiguous overloaded function reference "log(int)"
    (0) : lowp float log(lowp float)
    (0) : mediump float log(mediump float)
    (0) : float log(float)

error: device_pixelshader_create (GL) failed
error: Pass (0) <> missing pixel shader!
error: [StreamFX] <filter::color_grade> Error loading '/usr/local/share/obs/obs-plugins/StreamFX/effects/color-grade.effect': Unknown error during effect compile.
error: [StreamFX] Unexpected exception in function '_create': Unknown error during effect compile..
error: Failed to create source 'Color Grading'!
2023-09-30 04:46:14 +02:00
Michael Fabian 'Xaymar' Dirks
3d3aef47af Reorder the template for issues and bugs 2023-09-07 06:55:01 +02:00
Michael Fabian 'Xaymar' Dirks
8f7dd1ba4e Remove useless pull request template 2023-09-07 06:55:01 +02:00
Michael Fabian 'Xaymar' Dirks
0af846ea00 Migrate building guide from wiki to code
This should always have been part of the code, but hey - we learn at some point and improve ourselves.
2023-09-07 06:55:01 +02:00
Michael Fabian 'Xaymar' Dirks
a3b80daa54 Update Contributor guidelines
Removes the prefixes from commit titles, as they served no other purpose than to complicate things. While we originally copied this style from obs-studio, it has been increasingly clear that the short description usually already describes what the prefix would also describe. And in case it doesn't, you can just simply filter by file or directory, and get the same result.
2023-09-07 06:55:01 +02:00
Michael Fabian 'Xaymar' Dirks
ac307a4912 cmake: Add common include directories and fix Windows
Microsoft has some very annoying #define's which break most if not all of C++ at random spots. Best disable them globally so we don't have to ever deal with them. Also the MSVC CRT warnings are completely pointless, they are just whining that we use the standard instead of their non-portable functionality.
2023-09-07 03:43:24 +02:00
Michael Fabian 'Xaymar' Dirks
54cd3eef5b cmake: Actually add sources to the Core component 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
d8a673a578 cmake: Always provide at least one file to a target
While this would normally work no questions asked in something like 'make', 'nmake' or similar, it is an impossible task in CMake without an empty file. So we'll just provide it with an empty file.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
efb6e9f0cb cmake: Only enable Qt on components, not on the module
The module only holds the resources file, so Qt is not needed here.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
0ce977b9dd cmake: Uncomment still working code 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
98403126ad cmake: Fix missing public info, and remove PROJECT_NAME usage
Using PROJECT_NAME makes it incompatible with add_subdirectory, and it's really not necessary anyway. There are no plans to rename the project again.

Also needed to expose some information to be public, so that components could actually use it. Seems to be working as intended finally.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
8fb37b8d21 cmake: Fix up missing sub-components due to add_subdirectory
add_subdirectory creates a new "stack" of variables, so PARENT_SCOPE points nowhere. Well it points to the outside of the function, which is not outside of the subproject.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
d82d3901e4 cmake: Remove remnants of AOM AV1 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
f26565cf1e cmake: Remove clang integration, as it breaks on the new system 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
9021274297 cmake: Fix up missing linked objects in component system
We should always link the whole object, even if nothing is needed by the module itself.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
25ba51df12 code: Throw an error on nullptr for util::library::load 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
50c85608c3 cmake: Initial work towards component-ification
The old fake component system is starting to be very annoying to work with, as it doesn't properly split things apart. The new system should aid with this significantly, and make errors easier to spot.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks
e82823d49c cmake: Explicitly disable treating warnings as errors
As libOBS and OBS Studio unfortunately enforce treating warnings as errors, it is necessary to do the opposite. This may remove the need of having a patch for this exist at all, but I'll leave it be for now and just add this single line fix.
2023-07-31 15:28:39 +02:00
Michael Fabian 'Xaymar' Dirks
8b97c2b23d templates: Fix the remaining uncommitted changes 2023-05-20 20:52:40 +02:00
Michael Fabian 'Xaymar' Dirks
9df2f01963 templates: Pascal uses <> instead of != 2023-05-20 20:34:25 +02:00
Michael Fabian 'Xaymar' Dirks
ffb7a6c5d7 code: Add GoPro CineForm to FFmpeg Encoders 2023-05-20 19:54:46 +02:00
Michael Fabian 'Xaymar' Dirks
f66fabc5d4 templates: Move to 'usercf' instead of 'userpf'
Local (per-user) add-ons to software should reside in "C:\Users\Username\AppData\Local\Programs\Common\", similar to System (all-users) add-ons which reside in "C:\Program Files\Common Files\".

Fixes #1049
2023-05-20 19:54:15 +02:00
Michael Fabian 'Xaymar' Dirks
38d87f6fcf code: Don't crash if there is no encoder instance 2023-05-20 19:54:05 +02:00
Michael Fabian 'Xaymar' Dirks
3e13126f89 code: Remove audio encoder registration from FFmpeg Encoders 2023-05-20 19:25:46 +02:00
Michael Fabian 'Xaymar' Dirks
9d0233a740 code: Create mutexes to prevent Windows (un)installer from continuing
Might fix the problem where people uninstall StreamFX while they still have OBS Studio open with StreamFX loaded. InnoSetup appears to ignore this in /VERYSILENT, so this is an additional guard against that.
2023-05-20 19:24:06 +02:00
Michael Fabian 'Xaymar' Dirks
07182d2f89 templates: Exit-early if the user aborts the removal of an older version 2023-05-20 19:24:06 +02:00
Michael Fabian 'Xaymar' Dirks
5bdcefd618 code: Fix support for multiple FFmpeg version
This should make it compile just fine with older FFmpeg versions again, such as on Ubuntu 20.04.
2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks
0402c8ef60 code: Adjust copyright headers
Doesn't appear to follow renames, so i guess this is the new copyright!
2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks
1c76169821 code: Migrate encoder::ffmpeg::nvenc to new loader 2023-05-16 15:19:11 +02:00