Commit graph

959 commits

Author SHA1 Message Date
Daniel Molkentin
36450f2560
encoders/handlers/debug: Always return something in to_string (#354) 2020-10-09 20:28:11 +02:00
Daniel Molkentin
bb3dcf73ac
encoders/ffmpeg: Use correct parameter for log (#355) 2020-10-09 20:26:46 +02:00
Michael Fabian 'Xaymar' Dirks
dc311f5ce6 encoder/ffmpeg: Don't use hardware encoding for unsupported formats 2020-10-08 11:53:53 +02:00
Michael Fabian 'Xaymar' Dirks
e754a1edd0 encoders/ffmpeg: Don't overwrite already correct settings 2020-10-08 11:53:53 +02:00
Michael Fabian 'Xaymar' Dirks
1485e7a724 ffmpeg/tools: Set correct information when encoding
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
2020-10-08 11:53:53 +02:00
Michael Fabian 'Xaymar' Dirks
0862c7af06 ci: Fix support for new CMake script 2020-09-30 03:59:29 +02:00
Michael Fabian 'Xaymar' Dirks
8163e3e917 cmake: Refactor to modernize and improve readability
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.
2020-09-30 03:59:29 +02:00
Michael Fabian 'Xaymar' Dirks
ec372f5668 cmake: Upgrade C/C++ compiler adjustments to modern CMake 2020-09-30 03:59:29 +02:00
Michael Fabian 'Xaymar' Dirks
9cfa12e174 cmake: Set proper CMake policies by version 2020-09-30 03:59:29 +02:00
Michael Fabian 'Xaymar' Dirks
ff58a9bc41 cmake: Improve readability 2020-09-30 03:59:29 +02:00
Michael Fabian 'Xaymar' Dirks
3dbf9c9dbc ui/updater: Apply workaround for OBS Studio checking for modals
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
2020-09-30 03:57:36 +02:00
Michael Fabian 'Xaymar' Dirks
4ed1f3d481 templates: Fix installation path and 64-bit installations 2020-09-29 06:13:57 +02:00
Michael Fabian Dirks
01ce07327b
locale: New Crowdin updates (#335) 2020-09-25 21:34:17 +02:00
Michael Fabian 'Xaymar' Dirks
23cb20a268 project: Version 0.9.0 2020-09-25 21:33:09 +02:00
Michael Fabian 'Xaymar' Dirks
21795f489d ci: Also run on tags 2020-09-25 21:25:52 +02:00
Michael Fabian 'Xaymar' Dirks
8c99b56997 ui/about: Fix incorrect icon for YouTube URL
Fixes #329
2020-09-25 21:07:26 +02:00
Michael Fabian 'Xaymar' Dirks
81a970473f updater: Add functionality to check for updates
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.
2020-09-24 02:01:40 +02:00
Michael Fabian 'Xaymar' Dirks
08b2847fec cmake: Add optional dependency nlohmann::json 2020-09-24 02:01:40 +02:00
Michael Fabian 'Xaymar' Dirks
34ae5dd64b util/curl: Add C++ wrapper for CURL 2020-09-24 02:01:40 +02:00
Michael Fabian 'Xaymar' Dirks
d3c6472526 templates/version: Fix missing quotes around suffix 2020-09-24 02:01:40 +02:00
Michael Fabian 'Xaymar' Dirks
0b7e60e834 templates: Clean up license headers 2020-09-24 02:01:40 +02:00
Michael Fabian 'Xaymar' Dirks
5ead6260bb ui: Fix support for disambiguation in translations 2020-09-10 10:14:05 +02:00
Michael Fabian 'Xaymar' Dirks
1509d73ef6 util/threadpool: Don't hold work endlessly after processing it 2020-09-10 10:02:06 +02:00
Michael Fabian Dirks
7c55202140
locale: New Crowdin updates (#308) 2020-09-07 22:39:47 +02:00
Charles Fettinger
1794a8c7dd
examples: Add colored and inverted luma burn varitions (#283)
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.
2020-09-07 22:06:30 +02:00
Michael Fabian 'Xaymar' Dirks
99bf4542d0 project: Version 0.9.0a3
* #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.
2020-08-30 18:44:10 +02:00
Michael Fabian 'Xaymar' Dirks
778fc7f3fe encoders/handlers/nvenc: Don't list encoders on unsupported systems
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.
2020-08-10 20:39:08 +02:00
Michael Fabian 'Xaymar' Dirks
2010dc0a87 encoders/ffmpeg: Add function to get info object 2020-08-10 20:39:08 +02:00
Michael Fabian 'Xaymar' Dirks
53d3f1ae6c util/library: Cross-platform handler for library loading
Adds a utility class and functions to load libraries and symbols from libraries somewhat safely. Libraries are immediately unloaded when the last reference to them is lost, so the shared_ptr should be stored if the library is actually needed.
2020-08-10 20:39:08 +02:00
Michael Fabian 'Xaymar' Dirks
070fc41918 encoders/handlers/nvenc: Make code C++ standard compliant again 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
315b996ab3 encoders/ffmpeg: Support for FFmpeg versions older than 58.x 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
0c1a37a76c encoders/ffmpeg: Disable hardware path on Linux 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
284dec3a80 encoders/handlers/prores_aw: Fix override warning 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
805afd9064 encoders/codecs: Add missing includes 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
b4a727cb86 ffmpeg/tools: Fix compatibility with Ubuntu 18.04 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
a53518cdb9 project: Remove non-standard std:: prefix from types 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
dd9bbbcfe2 cmake: Enable FFmpeg Encoders on Linux 2020-08-10 19:51:21 +02:00
Michael Fabian 'Xaymar' Dirks
9b98f5e756 templates: Add generated configuration file 2020-08-10 02:33:54 +02:00
Michael Fabian 'Xaymar' Dirks
c78ba5b2ec templates: Move template files to better directory 2020-08-10 02:33:54 +02:00
Robert Moggach
f2ec4200cf
examples/sahders: Add concentric rings shader (ShaderToy: Xsl3RX) (#310) 2020-08-10 02:29:32 +02:00
Michael Fabian 'Xaymar' Dirks
5ba3d7e478 ffmpeg/tools: Ensure we aren't comparing against a nullptr 2020-07-30 07:52:42 +02:00
Michael Fabian 'Xaymar' Dirks
08cedfcadc project: Apply formatting 2020-07-30 07:32:22 +02:00
Michael Fabian 'Xaymar' Dirks
c94651654f cmake/clang: Add support for clang 3.5 to 10.0 2020-07-30 07:32:22 +02:00
Michael Fabian 'Xaymar' Dirks
8ffba69ce4 ci: Add validation for formatting using clang-format 2020-07-30 07:32:22 +02:00
Michael Fabian Dirks
e9b6f72b59
project: Version 0.9.0a2
* #270 Add additional shadertoy effects (by Oncorporation/Surn).
* #275 Improve installer user experience.
* #277 Add CI caching to improve build speeds.
* #286 Rename LOG_ to DLOG_ to avoid macro confusion.
* #287 Add new 'Thank You' entries.
* #288 Fix memory leaks caused by obs::source_tracker.
* #289 Fix memory leaks caused by configuration and UI.
* #290 Don't use namespaces that don't exist.
* #292 Fix/Work around a memory leak in gs::vertex_buffer.
* #293 Fix missing include in plugin.hpp.
* #294 Fix Clang toolset integration.
* #296 Fix FFmpeg encoder fallback support.
* #298 Fix NVENC logging incorrect values.
* #300 Remove level 5.2 from NVENC H.264.
* #301 Show warnings for exceptions thrown from tasks in a threadpool.
* #302 Clean up code to fix all warnings and reapply formatting.
* #304 Update Ubuntu 19.10 to 20.04 and revert to system-installed clang.
2020-07-29 06:29:17 +02:00
Michael Fabian 'Xaymar' Dirks
37e78cdcfa ci: Upgrade Ubuntu to 20.04 and don't use remote LLVM
Ubuntu 20.04 has officially replaced 19.10 as the latest version, and is stable enough that people can move to it. The script doesn't change much for that. However we do remove the needless extra builds here and revert to the system installed clang version, which thanks to other pull requests now works fine. For Ubuntu 18.04 that is clang-8, while for Ubuntu 20.04 it is clang-9.
2020-07-29 05:57:57 +02:00
Michael Fabian 'Xaymar' Dirks
ad64314b37 obs/gs/effect: Use the actual shared_ptr, not a pointer to it
Fixes several warnings and potential memory corruptions that could happen. Also makes the entire thing easier to read.
2020-07-29 05:17:42 +02:00
Michael Fabian 'Xaymar' Dirks
2a4f771d85 cmake: Don't enable useless warnings on GCC
Using '-Wpedantic' on any GCC warnings enables a lot of annoying warnings that don't actually warn about anything. Some of the warnings seem to exist purely for maintaining a certain code style, and have no actual effect on the program itself. Since there is no way to selectively disable warnings like on MSVC, removing it is the easiest choice.
2020-07-29 05:17:42 +02:00
Michael Fabian 'Xaymar' Dirks
d332007ae0 project: Code cleanup and reapply formatting
Changes applied:

* Moved utility files to /util/.
* Removed unused #includes.
* Removed unused ::ffmpeg::tools function.
* Removed unused variables.
* Fixed missing parentheses in the version macro.
* Fixed missing override on virtual function overrides and removed unnecessary virtual keyword from them.
* Disabled additional warning for ATL headers on MSVC only.
* Replaced direct printf parameters with their macro equivalent.
* Replaced C-style casts with C++-style casts.
* Applied clang-format again after an earlier change to the CMake file broke the integration for it.
2020-07-29 05:17:42 +02:00
Michael Fabian 'Xaymar' Dirks
6e02ee5fef util/threadpool: Show warnings for uncaught exceptions
Tasks should not leak exceptions, so it is better if we actually log them instead of silently ignoring them.
2020-07-29 02:13:02 +02:00