Using the obs_module_file and obs_module_config_path macros works okay, but it comes with a slight overhead as well as additional requirements when passing it to C++ functions that expect certain rules to be fulfilled. By instead wrapping the actual functionality into our own functions and using those we can avoid most of the issues that come with the old approach.
Related: #359
The MODULE_EXPORT and EXPORT macros in libOBS do not correctly mark a function or type as visible on GCC, which results in the newly added flag hiding everything from view, instead of just what should be hidden.
This fixes a bug with older Qt versions which would not remove the modal window from the parent in the setModal() call, resulting in an unusable parent window.
Fixes#368
The commit 8163e3e917 introduced a complete refactor of the CMake script in order to improve future updates, but accidentally broke building with OBS Studio due to only testing the standalone model. By correctly adjusting the option name again, this should work again with this change.
Fixed: #351
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.
Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.
Fixes#331
Refactors the entire file to be more readable while also improving the possibility of future improvements. Components are now resolved in one go instead of being all over the place, and shared dependencies are now only resolved once instead of multiple times.
For future compatibility sake, all features now default to enabled and will instead show a warning if they can't be enabled, or if their dependencies can't be found. Pay attention to the build log if you encounter this, as it should hint you towards what is missing. Some features are also now optional, instead of being required.
Furthermore the "Reference" and "Package" mode for building have been removed as supporting them has been a problematic thing from the start. While their structure technically matches the one that is downloaded, effectively they can result in unpredictable issues.
A number of other issues have also been fixed, like Qt being invoked for non-Qt source files.
In order to work around a bug in the OBS Studio UI code, we have to swap our modal status right before showing and right after hiding, so that the OBS Studio tray menu continuous working correctly. This is a bit of a weird solution, but it does work as expected.
Related: https://github.com/obsproject/obs-studio/issues/3518
Implements a manual and automatic update checker with support for both release and testing update channels, allowing users to stay as up to date as possible. It is fully compliant with privacy regulations around the world, as it stays completely silent and inactive until the user gives the Ok to connect to GitHub for the latest releases.
Adds colored and inverted colored variations for Luma Burn, enabling some more fancy transitions with it. All variations with color support smooth fading, and allow choosing any possible color for the transition.
* #307 Fix MSVC exclusive strcmp crash in FFmpeg Encoders.
* #310 Add shadertoy effect.
* #311 Move template files to custom directory.
* #312 Hide encoders that the current system does not support.
* #313 Enable FFmpeg Encoders on Linux.
Removes the NVENC entry on systems without an NVIDIA GPU by checking if the library for it can be loaded. If it can't be loaded, it's likely that the user does not have a system with NVENC capabilities - and guaranteed that they can't use the encoder as FFmpeg relies on these libraries.