Commit Graph

144 Commits (8e7481fb7564a7c0918c84c292be85a3e490083f)

Author SHA1 Message Date
jpark37 f3b2fc37c1 obs-filters: Fix LUT file extension filter on Linux 2020-03-20 17:41:18 -07:00
Gol-D-Ace d74fc65047 Update translations from Crowdin 2020-03-16 20:14:50 +01:00
jpark37 5306f56e89 obs-filters: Add Cube LUT samples 2020-01-12 20:02:33 -08:00
jpark37 4ea7424ebb obs-filters: Add Cube LUT file support
Tested Cube LUT examples from Photoshop, Adobe spec, and some homebrew.

I don't know how to use the domain fields, so they are being ignored.
2020-01-12 20:02:24 -08:00
jpark37 f452bfeedd obs-filters: Add grayscale LUT image
Not sure what effect black_and_white.png is going for. Add grayscale.png
to try to make it clear that the other image shouldn't be used for
desaturation.
2019-12-26 09:41:47 -08:00
jpark37 e4d8eaa1bc obs-filters: Use volume texture for LUT
Simplifies shader calculations. Not much perf gain, but GPA shows
bottleneck shift from Shader Execution to Sampler as expected.
2019-12-15 14:38:32 -08:00
Jim 768a58771a
Merge pull request #1919 from omkelderman/mask-filter-reload-on-file-change
obs-filters: Reload the mask image when file change is detected
2019-11-07 15:45:12 -08:00
Olle Kelderman 5534c46920 obs-filters: Reload the mask image when file change is detected 2019-11-07 11:34:10 -08:00
VodBox 6645eaf1b8 obs-filters: Add toggle for scroll filter looping
By giving the option to disable the looping in the scroll filter, it
makes it more suitable for tasks like credits sequences, where you don't
want the texture to repeat and for the motion to only be performed once.
2019-11-07 06:25:36 -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 d91bd327d7, 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