Commit Graph

895 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks ee2259592f project: Version 0.8.3
* #307 Fix Windows-exclusive crash in strcmp.
2020-07-30 07:54:53 +02:00
Michael Fabian 'Xaymar' Dirks c56562a562 ffmpeg/tools: Ensure we aren't comparing against a nullptr 2020-07-30 07:53:12 +02:00
Michael Fabian 'Xaymar' Dirks 8382189bf8 project: Apply formatting 2020-07-30 07:34:00 +02:00
Michael Fabian 'Xaymar' Dirks b222654c3e cmake/clang: Add support for clang 3.5 to 10.0 2020-07-30 07:33:08 +02:00
Michael Fabian 'Xaymar' Dirks fa17e2bffb ci: Add validation for formatting using clang-format 2020-07-30 07:33:08 +02:00
Michael Fabian 'Xaymar' Dirks f3b6de08ad project: Version 0.8.2
* Removed level 5.2 from NVENC H.264.
* Fixed incorrect values being logged by NVENC.
* Fixed Clang toolset integration.
* Fixed operator execution order confusion caused by macro.
2020-07-29 06:12:30 +02:00
Michael Fabian 'Xaymar' Dirks 8a8546c08a ui-about: Add new 'Thank You' entries 2020-07-29 06:10:40 +02:00
Michael Fabian 'Xaymar' Dirks 5e1f774172 encoders/handlers/nvenc: Remove 5.2 from H.264
The levels 5.2 and above were added in a newer FFmpeg version than OBS Studio is shipping with. Ideally we'd take these options directly from FFmpeg, but that is for a future commit.
2020-07-29 06:10:39 +02:00
Michael Fabian 'Xaymar' Dirks 509b040367 encoders/handlers/nvenc: Fix incorrect values being logged
Fixes the issue where "high444p" shows as "high", and "high" shows as "main", caused by the internal option mapping never being correct across version changes. Instead of keeping our own copy of things that has to be adjusted for each FFmpeg version, it's easier to just use the FFmpeg values and names.
2020-07-29 06:10:39 +02:00
Michael Fabian 'Xaymar' Dirks c599a73657 ffmpeg/tools: Add string value mapping to print_av_option 2020-07-29 06:10:39 +02:00
Michael Fabian 'Xaymar' Dirks 23382ba753 cmake: Fix Clang toolset support 2020-07-29 06:10:39 +02:00
Michael Fabian 'Xaymar' Dirks f38cfc23ff version: Fix potential operator order confusion
When using this macro, it was possible to get back bad results based on the operators before or after it. By adding parenthesis this unwanted behavior is fixed.
2020-07-29 06:09:39 +02:00
Michael Fabian 'Xaymar' Dirks d60365d197 project: Version 0.8.1
* #242 Add version information to binary files again.
* #262 Fix Shader filters not rendering in the correct size.
* #263 Fix incorrect QSS causing extra log spam.
* #264 Fix invisible Source Mirrors on launch.
* #265 Fix invisible Shader filters.
* #275 Improve Installer experience and automatically install MSVC if missing.
* #277 Add caching to CI to speed up builds and reduce network load.
* #286 Rename LOG_ to DLOG_ to avoid macro confusion on some compilers.
* #288 Fix memory leak caused by obs::source_tracker.
* #289 Fix memory leak caused by configuration and UI.
* #290 Fix invalid namespace usage if no features are compiled in.
* #292 Fix memory leak caused by gs::vertex_buffer and work around a memory leak caused by OBS Studio.
* #293 Fix missing include in plugin.hpp.
2020-07-27 02:49:20 +02:00
Michael Fabian 'Xaymar' Dirks ec38a05b25 obs/gs/vertexbuffer: Cleanup and add workaround for OBS Studio memory leak 2020-07-27 02:19:19 +02:00
Michael Fabian 'Xaymar' Dirks b2ff388dd4 obs/gs/helper: Throw exception if we aren't in a context 2020-07-27 02:18:09 +02:00
Michael Fabian 'Xaymar' Dirks ef1d882a85 utility: Don't crash on nullptr in free_aligned 2020-07-27 02:17:34 +02:00
Michael Fabian 'Xaymar' Dirks fa27471eb8 plugin: Fix missing include 2020-07-26 22:09:02 +02:00
Michael Fabian 'Xaymar' Dirks 51858469a3 common: Rename LOG_ to DLOG_ to avoid macro confusion 2020-07-26 22:09:02 +02:00
Michael Fabian 'Xaymar' Dirks 38f847666f plugin: Fix problematic 'using namespace' code 2020-07-26 22:09:02 +02:00
Michael Fabian 'Xaymar' Dirks 7b03125a41 configuration: Don't leak pointers and add messages to exceptions 2020-07-26 22:09:02 +02:00
Michael Fabian 'Xaymar' Dirks 104e03e8a9 obs/source-tracker: Don't leak pointers to sources 2020-07-26 22:09:02 +02:00
Michael Fabian 'Xaymar' Dirks f7aa443cea cmake, ci: Add caching support to speed up builds 2020-07-26 21:35:44 +02:00
Michael Fabian 'Xaymar' Dirks cae55bba29 project: Improve user experience in the Installer
Adds a BeforeInstall step to the InnoSetup installer which uses the msvc-redist-helper tool to automatically check for the necessary DLLs and install the required redistributable if some are found to be missing.

Additionally slightly modernized the installer with a design that isn't from the 90s, and paves the way for preventing updating StreamFX while OBS Studio is still running.
2020-07-26 21:35:44 +02:00
Michael Fabian 'Xaymar' Dirks 8c83eac063 project: Add CODEOWNERS file 2020-07-26 21:35:44 +02:00
Michael Fabian 'Xaymar' Dirks f6b08828fd filters/shader: Fix occasional invisibility problem 2020-07-26 21:35:44 +02:00
Michael Fabian 'Xaymar' Dirks 4cba824977 sources/mirror: Retrieve source size on acquire 2020-07-26 21:35:44 +02:00
Michael Fabian 'Xaymar' Dirks 9db9ffbed9 ui/about-entry: Fix incorrect QSS 2020-07-26 21:35:43 +02:00
Michael Fabian 'Xaymar' Dirks 7e43953f16 filters/shader: Don't use scaled size for input capture 2020-07-26 21:35:43 +02:00
Michael Fabian 'Xaymar' Dirks 8ba7fd0e9e gfx/shader: Add function to get base size 2020-07-26 21:35:42 +02:00
Michael Fabian 'Xaymar' Dirks 0c34334336 cmake: Fix generated version resource file 2020-07-26 21:34:48 +02:00
Michael Fabian 'Xaymar' Dirks e343e4cb9d project: Version 0.8.0 2020-05-31 20:30:06 +02:00
Michael Fabian 'Xaymar' Dirks 2ba556d99e project: Apply formatting 2020-05-31 20:21:55 +02:00
Michael Fabian 'Xaymar' Dirks 88e5a12cb9 source/mirror: Fix rare out-of-order lock on source
Occasionally, mostly due to other sources rebuilding their UI, an out-of-order lock freeze can be observed with Source Mirror. This is unwanted, so we need to move the freezing logic into a place where freezing shouldn't happen.

Fixes #228
Actually fixes #61
2020-05-31 20:21:29 +02:00
Michael Fabian 'Xaymar' Dirks dd89a7c8f3 cmake: Don't set version for Mac dynamic libraries 2020-05-31 19:01:31 +02:00
Michael Fabian 'Xaymar' Dirks 16d45a03ca cmake: Add an option to turn off clang integration
This allows building the plugin with compilers that pretend to be clang but aren't actually clang, like Googles 'Depot Tools' and some Clang-like compiler tools.
2020-05-31 19:01:20 +02:00
Michael Fabian 'Xaymar' Dirks 79d45ddad4 cmake: Update Clang integration to support AppleClang 2020-05-31 19:01:20 +02:00
Michael Fabian 'Xaymar' Dirks 8a8b0cf3fa ffmpeg/tools: Fix incorrect colors for sRGB 2020-05-31 17:20:58 +02:00
Michael Fabian 'Xaymar' Dirks e3817bc087 encoders/ffmpeg: Assume source pixel format for empty support lists 2020-05-31 02:49:32 +02:00
Michael Fabian 'Xaymar' Dirks 85f2ebc7e7 configuration: Fix failed saving due to invalid path 2020-05-31 01:49:17 +02:00
Michael Fabian 'Xaymar' Dirks c667b8a147 ui: Fix about dialog not being shown and move menu
Moves the menu for StreamFX to the primary menu, so that it is not hidden under tools. This makes it clearer to the user if their installation of StreamFX is working correctly, in addition to reducing the steps necessary to use the menu.

Also the 'About StreamFX' dialog now actually shows up for every update, as expected.
2020-05-31 01:46:38 +02:00
Michael Fabian 'Xaymar' Dirks e1afa67e9c transitions/shader: Fix order of assignment 2020-05-31 01:41:07 +02:00
Michael Fabian 'Xaymar' Dirks eaf89193fb gfx/shader/param/basic: Fix bool and suffixes, add enums and optimize
Adds support for enumerations, a different way of selecting how something should behave in a shader. Enumerations rely on a continuous list of values, and will automatically detect how many values there are in the enumeration. Only non-vector types are supported as enumeration entries, and array/vector parameters can have each member set to a different enumeration value.

Furthermore suffixes now are properly assigned, and 'bool' no longer causes shaders to stop rendering. Additionally by inlining some functions and using std::string_view we can achieve a slightly better performance than before.
2020-05-31 01:41:07 +02:00
Michael Fabian 'Xaymar' Dirks 7b8774b834 gfx/shader: Inlining, std::string_view and optimizations 2020-05-31 01:41:07 +02:00
Michael Fabian 'Xaymar' Dirks 7a9f1e9a5b obs/gs/effect-parameter: Use string_view over std::string
Using std::string_view over std::string (and const std::string&) has the advantage that we skip potential temporary std::string objects that are immediately thrown away, thus slowing down the code. It can also be implicitly cast to std::string, which makes it compatible with existing code that uses std::string.
2020-05-31 01:41:07 +02:00
Michael Fabian 'Xaymar' Dirks bd00fd3836 ui/about: Add 'Thank You' images to the About dialog
Images were created by the talented Inga (https://twitter.com/IngaPotejto).
2020-05-31 01:40:44 +02:00
Michael Fabian 'Xaymar' Dirks f367c0152c media: New 'Thank You' images 2020-05-31 01:40:44 +02:00
Michael Fabian 'Xaymar' Dirks 135ac282cf media: First version of the official icon 2020-05-13 04:21:28 +02:00
Michael Fabian Dirks 5aed075978
locale: New Crowdin translations (#195) 2020-05-13 04:21:14 +02:00
Michael Fabian 'Xaymar' Dirks f111330f8e filters/nv-face-tracking: Improve tracking and remove high priority CUDA stream
The high priority CUDA stream causes libOBS to be at a lower priority than the tracking, which is not what we want. Instead we want tracking to be incomplete in those cases, rather than slowing down encoding and other things.

Geometry updates are also now done once per frame instead of one per tracking update, which should improve the smoothness without affecting performance too much. Additionally all tracking info is now in the 0..1 range, which drastically simplifies some math - especially with texture coordinates.

To deal with tracking and updates being asynchronous, a very simple approximation of movement velocity has been added. This is mostly wrong, but it can bridge the gap where tracking updates are slower, as the values are all filtered anyway.
2020-05-13 02:30:15 +02:00
Michael Fabian 'Xaymar' Dirks ef283d219c nvicia/cuda-context: Don't modify the primary context
Doing so could potentially cause other CUDA implementations to suddenly fail.
2020-05-13 02:30:15 +02:00