166 Commits

Author SHA1 Message Date
Gol-D-Ace
7ab98ca00f Update translations from Crowdin 2020-11-25 20:11:39 +01:00
jpark37
3564e446ff rnnoise: Explicit double to float conversions 2020-11-04 04:45:07 -08:00
Florian Zwoch
bac24c2ca6 obs-filter: Fix potential symbol clashing on Linux
RNNoise symbols may collide with external ones provided by
libcodec2.so which FFMPEG may pull in automatically. Changing
the visibility of these symbols will guarantee the use of the
internal ones and not pick some (potential incompatible) from
outside.

fixes #3561
2020-10-16 05:26:25 -07:00
Gol-D-Ace
c66ebde080 Update translations from Crowdin 2020-09-27 23:07:27 +02:00
jp9000
e2bad8e79d obs-filters: Remove unnecessary files 2020-09-09 09:29:11 -07:00
jp9000
0608506e98 obs-filters: Use builtin rnnoise dep if not found 2020-09-09 09:25:11 -07:00
Kurt Kartaltepe
a2f5c323da obs-filters: Cleanup CMake
This file has become a mess of people hacking in fixes so this cleans it
up to make sense again.
2020-08-27 09:02:36 -07:00
Jim
aef10d46c4
Merge pull request #3322 from kkartaltepe/unused-var-cleanup
obs-filters/obs-outputs: Cleanup unused var warns
2020-08-23 12:40:54 -07:00
Kurt Kartaltepe
43da6eacd0 obs-filters/obs-outputs: Cleanup unused var warns
Fix unused variables when compiling without rnnoise
Fix unused variable warnings in GCC when using assert() in release
2020-08-23 12:09:59 -07:00
craftwar
f4ee271cd2 obs-filters: Fix building without noise reduction 2020-08-23 17:05:16 +08:00
Jérémy Farnaud
7e39109a86 obs-filters: Add option to use RNNoise for noise reduction
This commit adds support to using Xiph and Mozilla RNNoise library for
noise reduction.

RNNoise is a small library using an AI approach to noise reduction
using a pre-trained model like RTX Voice. But unlike RTX Voice, it is
very tiny, use CPU instead of GPU and only use little resources.
Obviously it is not as efficient but will effectively remove background
noise. It uses more CPU than the existing libspeex-based noise
reduction but it also sounds sounds way better.

RNNoise support is added to the noise reduction effect. It can be
enabled with a checkbox in the effect configuration. RNNoise has no
settings.
2020-08-18 11:25:21 -07:00
Clayton Groeneveld
990a07dc18 UI, obs-ffmpeg, obs-filters: Fix compile warnings 2020-07-16 23:15:13 -05:00
Richard Stanway
79981889c6 obs-filters: Misc code cleanups detected by PVS Studio 2020-05-24 18:09:42 +02:00
Jim
665180350d
Merge pull request #2657 from hselasky/improvement
libobs: Implement and use better scaling function for 64-bit integers
2020-05-21 18:07:53 -07:00
Jim
04e6a39de9
Merge pull request #2551 from jpark37/cube-lut-enhance
Implement CUBE LUT domain properly, tetrahedral interpolation for 3D LUTs
2020-05-20 18:09:56 -07:00
jp9000
7993179466 cmake: Add cmake folders 2020-05-13 06:52:37 -07:00
Georges Basile Stavracas Neto
bbf08b34d2 obs-filters: Add a user label to the LUT filter
While discussing the Flatpak RFC [1], it was spotted that the
LUT filter couldn't open the file selection dialog. It was
explained, then, that the proper formats were either composed
of "User Label (file extensions)", or "file extensions", and
the LUT filter was setting "(file extensions)" without the
actual user label.

While this works on a standard Qt file selection dialog, it
cannot be properly formatted as a set of D-Bus filters, thus
breaking the sandbox integration.

Add a simple user label to the LUT file filter.

[1] https://github.com/obsproject/rfcs/pull/21#issuecomment-619106757
2020-04-24 17:18:47 -03:00
Colin Edwards
55e2985026
Merge pull request #1944 from WizardCM/windows-rc-definition
CMake: Build Windows modules with file descriptors
2020-04-18 18:27:22 -05:00
jpark37
34d70c6832 obs-filters: 3D LUT tetrahedral interpolation
As requested by Adobe CUBE spec.
2020-04-08 17:00:45 -07:00
Hans Petter Selasky
0e4ea14ba1 libobs: Implement and use better scaling function for 64-bit integers
As os_gettime_ns() gets large the current scaling methods, mostly by casting
to uint64_t, may lead to numerical overflows. Sweep the code and use
util_mul_div64() where applicable.

Signed-off-by: Hans Petter Selasky <hps@selasky.org>
2020-04-05 20:27:28 +02:00
jpark37
3aef198921 obs-filters: Implement CUBE LUT domain properly
Previously assuming zero to one instead of respecting values.
2020-03-22 18:25:32 -07:00
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
Matt Gajownik
51be039cf8 CMake: Build Windows modules with file descriptors 2019-10-15 21:34:12 +11: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