Commit graph

894 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
aad7f64800 configuration: Don't leak pointers and add messages to exceptions 2020-07-26 19:22:23 +02:00
Michael Fabian 'Xaymar' Dirks
d4206f3a92 cmake, ci: Add caching support to speed up builds 2020-07-15 23:07:54 +02:00
Michael Fabian 'Xaymar' Dirks
6aaf3b2071 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-15 20:00:31 +02:00
Michael Fabian 'Xaymar' Dirks
b5e943b3f3 project: Add CODEOWNERS file 2020-07-15 19:05:18 +02:00
Charles Fettinger
60686e7f23
examples/shaders: Add Shadertoy effects and conversion template (#270) 2020-07-14 16:59:00 +02:00
Michael Fabian 'Xaymar' Dirks
8e7b9adaa8 project: Version 0.9.0a1 2020-07-06 01:38:16 +02:00
Michael Fabian 'Xaymar' Dirks
d5f34f5a41 encoders/handlers/nvenc: Update locale text
The new text should make it easier to understand for end-users.
2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
f10258becb encoders/handlers/nvenc: Don't list 'each' mode for H.264 2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
1ba3db5719 encoders/handlers/nvenc: Improve UI/UX for NVENC
* "Quality" Minimum/Maximum is actually QP Minimum/Maximum
* Bitrate Limits is now just Limits
* Buffer Size and Quality Target have been moved into "Limits".
2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
b142f363db encoders/handlers/nvenc: Update names 2020-07-06 01:28:30 +02:00
Michael Fabian 'Xaymar' Dirks
82a1260ddc encoders/ffmpeg: Add support for settings migration 2020-07-06 01:27:34 +02:00
Michael Fabian 'Xaymar' Dirks
2f9eeb3e6a examples/shaders: Add new per-activation random to sliding bars transition 2020-07-06 01:27:23 +02:00
Michael Fabian 'Xaymar' Dirks
717b38f3f7 gfx/shader: Add Per-Instance/Activation/Frame Random values 2020-07-06 01:27:23 +02:00
Michael Fabian 'Xaymar' Dirks
3de7a87de6 filters/shader: Fix occasional invisibility problem 2020-07-06 01:27:09 +02:00
Michael Fabian 'Xaymar' Dirks
c9769637be sources/mirror: Retrieve source size on acquire 2020-07-06 01:20:00 +02:00
Michael Fabian 'Xaymar' Dirks
1fb9fab0b9 ui/about-entry: Fix incorrect QSS 2020-07-06 01:07:12 +02:00
Michael Fabian 'Xaymar' Dirks
cc6a2a1b1a filters/shader: Don't use scaled size for input capture 2020-07-06 01:06:54 +02:00
Michael Fabian 'Xaymar' Dirks
dcf0bb49b8 gfx/shader: Increase size limit and function to get base size 2020-07-06 01:06:54 +02:00
Michael Fabian 'Xaymar' Dirks
d1fcb73435 obs/encoder-factory: Fix incorrect proxy registration 2020-07-06 01:03:58 +02:00
Michael Fabian 'Xaymar' Dirks
95f022feea project: Adjust object Ids and add proxies for compatibility 2020-06-21 19:28:10 +02:00
Michael Fabian 'Xaymar' Dirks
cf398d01da obs/source-factory: Add function to register proxy objects
Proxies allow for older configurations to work fine on newer versions, without having to manually adjust the scene collection to match the new ids at all. Thanks to the migration system we can freely support any number of old versions, as long as we write migration code.
2020-06-21 19:28:10 +02:00
Michael Fabian 'Xaymar' Dirks
7eaaab8630 nvidia/cuda/cuda: Convert to global Singleton 2020-06-21 19:27:58 +02:00
Michael Fabian 'Xaymar' Dirks
379d96044d nvidia/cuda: Remove 'cu_' prefix from types 2020-06-21 19:27:57 +02:00
Michael Fabian 'Xaymar' Dirks
b89281f320 strings: Add global id prefix 2020-06-21 19:27:57 +02:00
Michael Fabian 'Xaymar' Dirks
77bf25d8fb encoders/ffmpeg: Rename files to match naming scheme 2020-06-21 19:24:59 +02:00
Michael Fabian 'Xaymar' Dirks
6e0f85d3f7 encoders/ffmpeg: Rebase onto obs::encoder_factory 2020-06-21 19:24:58 +02:00
Michael Fabian 'Xaymar' Dirks
18980b8863 obs/encoder-factory: Factory to create encoder instances 2020-06-21 19:24:58 +02:00
Michael Fabian 'Xaymar' Dirks
8a06d82acc cmake: Add support for code signing 2020-06-14 04:51:16 +02:00
Michael Fabian 'Xaymar' Dirks
40a1648378 cmake: Fix generated version resource file 2020-06-14 04:18:36 +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
Michael Fabian 'Xaymar' Dirks
1902df524c nvidia/cuda: Add cuCtxCreate, cuCtxSynchronize 2020-05-13 02:30:15 +02:00