Commit graph

879 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
ccc4c6ea22 filter-sdf-effects: Fix and improve effect rendering
Fixes the bug that rendering an outline would remove all other effects not directly under the outline, while also improving the rendering speed drastically by only initializing and clearing the rendertarget once instead of for each effect.
2019-05-28 02:51:27 +02:00
Vainock
0e39490284 locale: Delete unused language files (#67) 2019-04-28 18:20:56 +02:00
Vainock
438ce1abf9 locale: Fix mistake in locale (#66) 2019-04-28 17:56:31 +02:00
Michael Fabian 'Xaymar' Dirks
fa1580cc7c ci: Don't build i18n and l10n branches 2019-04-27 18:00:55 +02:00
Michael Fabian Dirks
956df8762c locale: New Crowdin translations (#63) 2019-04-27 17:59:31 +02:00
Michael Fabian 'Xaymar' Dirks
013861694a project: Version 0.7.0 2019-04-27 17:56:11 +02:00
Michael Fabian 'Xaymar' Dirks
9e7894c9c3 filter-dynamic-mask: Implement Dynamic Mask filter
This filter allows the use of another source as a mask, allowing complex filter graphs and trippy effects, such as creating a text source with three animated videos, each using a different color channel as the mask.

Fixes #18.
2019-04-27 17:56:10 +02:00
Michael Fabian 'Xaymar' Dirks
a139509215 ci: Update InnoSetup URL 2019-04-27 16:40:57 +02:00
Michael Fabian 'Xaymar' Dirks
c46e881697 obs-source: Don't un/register audio capture with no source
Fixes the log spam if a source could not be found.
2019-04-27 16:08:54 +02:00
Michael Fabian 'Xaymar' Dirks
8bb1ca50ac obs-source-tracker: Also keep track of sources being renamed
When a source was renamed, obs::source_tracker did not use the new name and instead relied on the old name. This caused source lists with this feature to slowly degrade over time as sources were renamed, until libobs was restarted.

With this fix the renamed sources are now properly tracked, updating as expected.

Related Issue: #64
2019-04-27 16:07:50 +02:00
Michael Fabian 'Xaymar' Dirks
088edf1045 cmake: Update copyright years 2019-04-23 17:58:36 +02:00
Michael Fabian 'Xaymar' Dirks
722b4bdcde README: Update Readme 2019-04-23 17:54:18 +02:00
Michael Fabian 'Xaymar' Dirks
324deca1ef AUTHORS: Add Authors file 2019-04-23 17:54:18 +02:00
Michael Fabian 'Xaymar' Dirks
f6687c7ed6 filter-displacement: Don't crash if the file can't be found
Fixes a user reported issue where obs-studio began crashing out of nowhere.
2019-04-23 17:20:18 +02:00
Michael Fabian 'Xaymar' Dirks
bbcde070f3 filter-displacement: Do not allow zero-length file names
Fixes a crash when using c_str() on an empty string, causing an unexpected crash.
2019-04-23 17:00:18 +02:00
Vainock
b4341e41b3 locale: Add missing dot at the end of a line (#62) 2019-04-23 12:42:27 +02:00
Michael Fabian Dirks
61d5a0341a
locale: New Crowdin translations (#59) 2019-04-21 20:30:59 +02:00
Michael Fabian 'Xaymar' Dirks
f8e685cf42 project: Apply clang-format manually again 2019-04-19 20:40:07 +02:00
Michael Fabian 'Xaymar' Dirks
b34c880f88 project: Add pre-commit hook for clang-format
Automatically reformats the code before committing any changes using clang-format, to ensure that there are no additional reformatting commits needed in the future.

This requires clang-format to be globally available to git, either through path or by directly being in the git bash directory. The hook will only run if a developer actually installs it with install.sh.
2019-04-19 20:38:50 +02:00
Michael Fabian 'Xaymar' Dirks
be4d42312d project: Fix all remaining portability issues
Clang on Windows and Clang on Linux behave differently, and of course GCC on Windows (MinGW) and GCC on Linux do too. This is the point where using either compiler on either platform should successfully compile the project without any issues.

Clang and GCC have a ton of warnings however, which definitely need to be fixed in the near future. Some of them are great warnings, like old C style casts, others are non-sense like suggest brackets.

Fixes #47
Fixes #60
2019-04-19 14:18:29 +02:00
Michael Fabian 'Xaymar' Dirks
aac52f736d project: Clang support
Lots and lots of errors and warnings fixed with this single commit, in the name of clang support.

Related #60, #47.
2019-04-19 09:42:15 +02:00
Michael Fabian 'Xaymar' Dirks
432b8e8c14 source-mirror: Automatically update hover text for Bounds Type 2019-04-19 08:20:33 +02:00
Michael Fabian 'Xaymar' Dirks
411f5ee900 cmake: Remove CppCheck support
The current way was a hack at best, and there is a much better way using CMAKE_EXPORT_COMPILE_COMMANDS=ON. For more, read the CppCheck manual.
2019-04-19 08:20:33 +02:00
Michael Fabian 'Xaymar' Dirks
3800584c2d cmake: Set expected C++ standard to C++17 2019-04-19 08:20:33 +02:00
Michael Fabian 'Xaymar' Dirks
3aa663908a locale: Further improve original translations 2019-04-19 08:20:33 +02:00
Michael Fabian Dirks
870625e8e5
locale: Update translations from CrowdIn (#58) 2019-04-15 12:56:21 +02:00
Michael Fabian 'Xaymar' Dirks
e24b9a61fa filter-blur: Update long description of Type and Subtype fields
Automatically updates the long description (hover text) if the Type or Subtype field is changed, allowing for more contextual information about what the selected information does.
2019-04-15 12:54:19 +02:00
Michael Fabian 'Xaymar' Dirks
c59ec2511b filter-sdf-effects: Refactor to include Glow and Stroke (#2, #4)
This refactors the SDF Effects to use a normal blend function instead of doing the blend in the effect itself, improving quality and reducing problematic sampling issues. In addition to this, the effect files have been cleaned up slightly and renamed to their proper names. Glow and Stroke are now supported, which solves both #2 and #4 in one go.

The caching optimization has also now been implemented, reducing the number of renders for this filter to 1 for each tick.
2019-04-14 14:19:59 +02:00
Michael Fabian Dirks
982dbc655b
locale: Update translations from CrowdIn (#55) 2019-04-14 13:59:02 +02:00
Michael Fabian 'Xaymar' Dirks
787409b2d9 filter-transform: Fix description for Position, Rotation, Scale & Shear
This would previously incorrectly reference descriptions that don't exist, and thus not translate correctly.
2019-04-06 18:19:35 +02:00
Michael Fabian 'Xaymar' Dirks
da66947e10 project: Version 0.6.1 2019-04-03 06:45:10 +02:00
Michael Fabian 'Xaymar' Dirks
86e09b6f72 obs-source: Explicitly clear events and copy events 2019-04-03 06:44:04 +02:00
Michael Fabian 'Xaymar' Dirks
fa60be1593 source-mirror: Fix incorrect source alignment
This bug was introduced in 0.6.0 and had sources render half offscreen to the left, as the alignment 4 meant "center left" instead of just "center".
2019-04-03 06:13:23 +02:00
Michael Fabian 'Xaymar' Dirks
af023f9132 project: Version 0.6.0 2019-04-03 02:59:48 +02:00
Michael Fabian 'Xaymar' Dirks
2a53e84bdb filter-blur: Fix more compiler warnings 2019-04-03 02:59:48 +02:00
Michael Fabian 'Xaymar' Dirks
bdf6b893ab source-mirror: Fix a dead lock issue and use a queue system
This fixes a dead lock due to attempting to lock the same filter mutex twice, causing libOBS to completely lock up on every mutex. This extends the fix for 4fc25cfd8d.

Additionally this switches to a proper queue system for audio, so we no longer cause audio stuttering or audio skipping.
2019-04-03 02:58:54 +02:00
Michael Fabian 'Xaymar' Dirks
721bdaf642 project: Reapply clang-format globally 2019-04-03 00:19:01 +02:00
Michael Fabian 'Xaymar' Dirks
b1d7814c64 gs-helper: Add managed obs graphics context
To further distance the code from having to do too much manually, the graphics context is now available as a managed class. All places that previously used obs_enter_graphics and obs_leave_graphics are now using the new gs::context class instead.
2019-04-03 00:16:13 +02:00
Michael Fabian 'Xaymar' Dirks
8ebdde5d36 obs-source: Fix additional compiler warnings 2019-04-02 22:58:50 +02:00
Michael Fabian 'Xaymar' Dirks
ad22341ab0 source-mirror: Fix a few compiler warnings 2019-04-02 22:46:11 +02:00
Michael Fabian Dirks
74f9bc0dbf
locale: Update translations from CrowdIn (#53) 2019-04-02 22:43:37 +02:00
Michael Fabian 'Xaymar' Dirks
4fc25cfd8d source-mirror: Don't render scene items with 0 size
libOBS will simply forget to unlock a mutex if you set the boundary size to zero, resulting in the filters dialog for that source simply getting stuck. Why video rendering can affect the audio filter dialogs is a question for another time, but it's best to just accept it and move on.
2019-04-02 22:10:23 +02:00
Michael Fabian 'Xaymar' Dirks
5738e51e73 obs-source: Also move events in move constructor and operator 2019-04-02 22:08:20 +02:00
Michael Fabian 'Xaymar' Dirks
381aa3ecd4 source-mirror: Correctly check for Audio and Video source
Previously this would not do anything correctly, as the call to obs_source_get_flags does not return anything for most sources. Instead obs_source_get_output_flags should be used to verify that we actually have a video or audio capable source to work with.
2019-04-02 20:19:40 +02:00
Michael Fabian 'Xaymar' Dirks
4d66938832 source-mirror: Replace obs_enum_* with obs::source_tracker
obs::source_tracker allows us to do more over more versions of OBS Studio, so we are able to enumerate any and all Sources, Scenes and Transitions that weren't created private. If we were to rely on libOBS for this, we would need to limit ourselves to version 23 or higher, but with this we can go very far back - as far back as the global event system was fully supported.
2019-04-02 20:19:10 +02:00
Michael Fabian 'Xaymar' Dirks
ee97321319 filter-blur: Add empty entry to the Mask Source input 2019-04-02 19:58:14 +02:00
Michael Fabian 'Xaymar' Dirks
ddf75d3e9f obs-audio-capture: Remove unused code 2019-04-02 19:45:10 +02:00
Michael Fabian 'Xaymar' Dirks
bcf5b56c44 source-mirror: Switch to obs::source audio capture 2019-04-02 19:44:48 +02:00
Michael Fabian 'Xaymar' Dirks
8fb7d193f5 obs-source: Add audio capture and selectively listen to events
Audio capture previously needed an additional class, however there is no need for this if this can be done together with the actual obs::source object. So obs::source now has a new audio_data event that can be listened to, which handles capturing audio data if requested.

Additionally all other events are now selectively listened to, instead of permanently listening to them. This should drastically reduce the overhead of using obs::source.
2019-04-02 19:30:25 +02:00
Michael Fabian 'Xaymar' Dirks
1b7de8b6b1 util-event: Automatically clear event listeners when destructed 2019-04-02 19:11:26 +02:00