136 Commits

Author SHA1 Message Date
Olle Kelderman
5534c46920 obs-filters: Reload the mask image when file change is detected 2019-11-07 11:34:10 -08:00
Clayton Groeneveld
2d6494ec00 obs-filters: Fix sharpness not being translated 2019-10-09 05:23:15 -05:00
Gol-D-Ace
03b5be75e4 Update translations from Crowdin 2019-09-17 23:21:00 +02:00
Jim
168ae0af8e
Merge pull request #1979 from cg2121/suffixes
UI, obs-plugins: Add spinbox suffixes where necessary
2019-07-21 21:45:30 -07:00
Clayton Groeneveld
3ea354b4e4 UI, obs-plugins: Add spinbox suffixes where necessary 2019-07-18 04:03:38 -05:00
jpark37
85cc7c84bc libobs: obs-filters: Area upscale shader
Add a separate shader for area upscaling to take advantage of bilinear
filtering. Iterating over texels is unnecessary in the upscale case
because a target pixel can only overlap 1 or 2 texels in X and Y
directions. When only overlapping one texel, adjust UVs to sample texel
center to avoid filtering.

Also add "base_dimension" uniform to avoid unnecessary division.

Intel HD Graphics 530, 644x478 -> 1323x1080: ~836 us -> ~232 us
2019-07-17 21:11:18 -07:00
jp9000
f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
Gol-D-Ace
973bc481ce Update translations from Crowdin 2019-06-11 01:42:42 +02:00
James Park
493648c6d2 obs-filters: Remove unused key_rgb shader variable
Variable was never used. Clean up both C++ and shader code.
2019-05-18 22:14:27 -07:00
James Park
dde6257bd9 obs-filters: Remove unused variable for color key 2019-05-18 22:12:19 -07:00
jp9000
0800c8cbd1 obs-filters: Use int sliders for opacity
This changes all opacity scrollers for filters to sliders + scrollers.

Reference: obsproject/obs-studio#1827
2019-04-26 06:33:41 -07:00
jp9000
71f9900e74 obs-filters: Fix opacity on image mask/blend filter
The alpha value from the opacity slider was being overwritten.

Closes obsproject/obs-studio#1827
2019-04-26 05:22:44 -07:00
jp9000
f109d1c2bf Revert "libobs: libobs-d3d11: obs-filters: No excess alpha"
This reverts commit d91bd327d7a8bb4597562fc26da4edb7b56874ff, which
broke alpha with sources, scenes, and filter, causing them all to become
opaque unintentionally.
2019-04-25 08:36:41 -07:00
Jim
397f3733cf
Merge pull request #1685 from DDRBoxman/luma
obs-filters: Add luma key filter
2019-04-14 04:24:16 -07:00
Jim
9480cc4fd2
Merge pull request #1675 from admshao/clear-linux-compiling-warnings
Clear linux compiling warnings
2019-04-14 04:21:21 -07:00
James Park
d91bd327d7 libobs: libobs-d3d11: obs-filters: No excess alpha
Currently SrcBlendAlpha and DestBlendAlpha are both ONE, and can
combine together to form two. This is not a noticeable problem for
UNORM targets because the channels are clamped, but it will likely
become a problem if FLOAT targets are more widely used.

This change switches DestBlendAlpha to INVSRCALPHA, and starts
backgrounds as opaque black instead of transparent black. The blending
behavior of stacked transparents is preserved without overflowing the
alpha channel.
2019-04-07 18:16:56 -07:00
Gol-D-Ace
e78ac5ebef Update translations from Crowdin 2019-04-04 16:19:51 +02:00
Shaolin
54f4e2589a plugins: Clear all compiler warnings 2019-03-29 06:29:09 -03:00
Jim
faa2ba3617
Merge pull request #1776 from jpark37/unused-function
obs-filters: Remove unused function in shader
2019-03-26 14:08:02 -07:00
James Park
36201d9b67 libobs: Remove dead code in sharpness effect
Not sure why, but there's a dead uniform and interpolant in the
sharpness effect. This change removes them.
2019-03-25 08:38:45 -07:00
James Park
f046177c4f obs-filters: Remove unused function in shader
SampleYUVToRGB() is no longer used after the previous DrawMatrix purge.
2019-03-23 18:31:38 -07:00
Colin Edwards
609c7dfa2a obs-filters: Add luma key filter 2019-03-20 11:37:38 -05:00
Colin Edwards
5c16a96770
Merge pull request #1715 from jpark37/area-filter
Add "Area" scale filter
2019-03-13 23:30:25 -05:00
James Park
7d811499e0 Add "Area" scale filter
This new scale filter computes pixels by weighing the coverage area of
source pixels over the target pixel. This algorithm works well for both
upsampling and downsampling, but was mainly designed to upscale
high-quality low-resolution sources like RGB/HDMI retro consoles. I've
heard of people using odd workarounds like scaling up to very high
resolutions before scaling back down to preserve pixel shartpness. This
algorithm directly addresses this use-case in a much more direct
fashion.

The Area scale filter does a better job of preserving the thickness of
thin features than the Point filter.

The Area scale filter does not look at source pixels that lie outside
of the target pixel, leading to a much sharper image than Bilinear,
Bicubic, and Lanczos filters.

This filter should interpolate pixels in linear space, but OBS is not
equipped to do that at the moment.

libobs: Add GPU effect, and wire up scene serialization.

obs-filters: Add Area as an option for scale_filter.

UI: Add Area as an option for both scene items, and canvas downscaling.
2019-03-06 20:53:15 -08:00
Colin Edwards
e9ec398667
Merge pull request #1670 from pkviet/expredux
obs-filters/expander: Various improvements
2019-03-03 22:34:28 -06:00
Gol-D-Ace
ec42739ad5 Update translations from Crowdin 2019-02-24 23:26:47 +01:00
Gol-D-Ace
c3711bdd5e Update translations from Crowdin 2019-02-20 22:26:07 +01:00
pkv
41ddf83da8 obs-filters/expander: Various improvements
Make envelope per channel.
Move ballistics (attack/release) to log domain and after gain stage.
cf Josh Reiss, Uni. London,
http://c4dm.eecs.qmul.ac.uk/audioengineering/compressors/documents/Reiss-Tutorialondynamicrangecompression.pdf
Thanks to Dedrick for very useful feedback.
2019-02-18 23:55:09 +01:00
Dmitry-Me
7be8269145 obs-filters: Fix unused parameter warnings 2019-02-05 18:20:26 +03:00
pkviet
fcc9f4e1f9 obs-filters: Add downward expander filter
The downward expander acts as an advanced gate with smoother effect
since it lowers the level instead of discarding audio when below the
threshold.
2019-01-31 20:20:52 +01:00
pkviet
6e8758aa28 obs-filters: Add limiter filter
This adds a hard limiter (based on compressor).
2018-11-28 14:20:06 +01:00
Jim
5cb76c9e79
Merge pull request #1389 from Andersama/scale-filter-variable-resolutions
obs-filters: Add base canvas resolution option
2018-09-18 12:10:04 -07:00
Jim
8435e581ac
Merge pull request #1377 from Andersama/chroma-key-optimization
obs-filters: Optimize chroma key's box filter
2018-09-17 02:18:41 -07:00
Jim
af320a0838
Merge pull request #1480 from kkartaltepe/module-descriptions
Plugins: Add descriptions to modules
2018-09-16 15:34:28 -07:00
Philip Loche
7cfbdcf184 obs-filters: Add "Invert Polarity" audio filter
Allows inverting the polarity of the audio data, which can be useful for
ether purposefully canceling out audio or preventing audio cancellation.

Amends pull request obsproject/obs-studio#1404
2018-09-13 02:51:07 -07:00
Alex Anderson
72cf77102c obs-filters: Avoid skewing chroma key's box filter average
Passes the sample directly to the box filter before it is multiplied by color.
2018-09-12 23:52:22 -07:00
Alex Anderson
73d8220f16 obs-filters: Optimize chroma key's box filter
Reduces number of samples taken for same effect.
2018-09-12 23:52:13 -07:00
Kurt Kartaltepe
d86c8121ed Plugins: Add descriptions to modules 2018-09-11 18:28:58 -07:00
Alex Anderson
f8f23a36e7 obs-filters: Add base canvas resolution option
Add a variable resolution to scale to. Requires first commit of #1390.
2018-09-07 18:23:10 -07:00
Jim
3be5e414bc
Merge pull request #1362 from Chiitoo/automagic
cmake: Use less automagic during configure
2018-09-05 23:57:07 -07:00
Gol-D-Ace
a79aaa28ab Update translations from Crowdin 2018-08-18 04:16:35 +02:00
Shaolin
d5fb5edd93 obs-filters: Fix segfault in Compressor Filter
obs_audio_data* sent to compressor_filter_audio had audio->frames == 0.
The analyze_envelope was trying to access an array at index -1 in result
of that. Just return if no samples are provided.

This fixes Mantis issue: 1261
2018-08-02 15:32:54 -03:00
Jimi Huotari
79006adaf2
obs-filters: Use less automagic for SpeexDSP detection
This adds a build-time option for disabling the SpeexDSP-based
Noise Suppression filter support in cases where users do not
wish to build it, but have the required library installed.
2018-07-11 05:09:03 +03:00
Zachary Lund
698e6418ba obs-filters: Use double-precision where viable
We're expecting a variable with double precision. Since we don't read
the value of these doubles with a particular precision, it can often
lead to unpredictable results where the value set isn't the one
intended due to the loss of precision from float->double conversion.
2018-05-30 14:52:39 -07:00
Gol-D-Ace
88282c168c Update translations from Crowdin 2018-03-15 09:00:28 +01:00
Shaolin
7f3a6844b5 obs-filters: Clear unused parameter warning
Closes jp9000/obs-studio#1188
2018-02-20 01:33:19 -08:00
jp9000
4eb5be4903 obs-filters: Fix hard cross-lock when using ducking 2018-01-22 16:44:22 -08:00
Gol-D-Ace
ae22886f67 Update translations from Crowdin 2018-01-22 04:55:52 +01:00
J.D. Purcell
459da1c863 obs-filters: Fix heavy distortion in Noise Suppression filter
Noise Suppression: Clamp sample values before converting to integer.
This fixes an issue where samples exceeding full scale would overflow,
resulting in heavy distortion.

Closes jp9000/obs-studio#1113
2018-01-04 20:41:01 -08:00
jp9000
6634415e32 obs-filters: Fix minor leaks with LUT filter 2018-01-04 20:35:39 -08:00