Commit graph

1109 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
515f9c659e filters/color-grading: Adjust range for Lift and Gain (#515)
Fixes #515
2021-04-14 13:41:52 +02:00
Michael Fabian 'Xaymar' Dirks
36b12d971b filters/color-grading: Fix incorrect Lift logic (#515)
Fixes #515
2021-04-14 13:41:52 +02:00
Michael Fabian 'Xaymar' Dirks
895b1a06e6 filters/color-grading: Fix Gamma function and improve code readability
Fixes #510
2021-04-14 13:41:52 +02:00
Michael Fabian 'Xaymar' Dirks
bd0831bf9b filters/color-grading: Replace log10 command for GLSL (#510)
Fixes #510
2021-04-14 13:41:52 +02:00
Michael Fabian 'Xaymar' Dirks
9e6ed9aa94 project: Version 0.10.0b2
* Fixed a bug preventing versions from being parsed correctly in CMake.
* Fixed a bug introduced between 0.9.3 and 0.10.0b1 which broke transparency support for Color Grading.
* Added support for direct rendering to some sources/filters/transitions.
* Added .pkg based Installer for MacOS, thanks to @cpyarger.
* Updated translations from Crowdin.
2021-04-08 09:48:35 +02:00
Xaymar
42f47898bf
locale: New Crowdin updates (#500) 2021-04-08 09:48:15 +02:00
Michael Fabian 'Xaymar' Dirks
a47d068012 transition/shader: Use direct rendering (#501) 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
8aba2bd2be source/shader: Use direct rendering (#501) 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
069061274b filter/shader: Use direct rendering (#501) 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
0fe913a94c gfx/shader: Allow specifying effect for direct rendering (#501) 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
78b91c9957 filter/dynamic-mask: Require buffered rendering 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
f9d4c48237 filter/displacement: Require buffered rendering 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
40bf73bc22 filter/color-grade: Add direct rendering support (#501) 2021-03-28 15:02:11 +02:00
Michael Fabian 'Xaymar' Dirks
dfec841054 filters/color-grade: Fix support for translucent Inputs
Additionally also document some of the code and enforce certain GPU states for rendering.
2021-03-28 10:43:35 +02:00
Xaymar
f25123f717 locale: New Crowdin updates (#482) 2021-03-28 08:48:41 +02:00
Michael Fabian 'Xaymar' Dirks
4f24fff219 cmake: (Windows) Fix incorrect reference to CMAKE_PACKAGE_PREFIX 2021-03-28 08:07:14 +02:00
Michael Fabian 'Xaymar' Dirks
a20e9c64e2 ci: (MacOS) Build .pkg installer 2021-03-28 06:42:38 +02:00
Christopher P Yarger
5ca0e1a145 cmake: (MacOS) Add .pkg installer generation
Enables users of the Mac Operating System to use an automated installer instead of the manual installation method which is prone to user errors. This is done via the use of "Packages", which generates a .pkg file according to the requirements we present it.
2021-03-28 06:42:38 +02:00
Michael Fabian 'Xaymar' Dirks
dc09ae96b9 cmake: Fix version detection code
When the CMake script was rewritten, not much attention was put into the versioning code, resulting in odd behavior which was never found or fixed. For example, the automatic splitting of the suffix from the number never worked, and the build number was being stored in the wrong variable.
2021-03-23 21:50:24 +01:00
Michael Fabian 'Xaymar' Dirks
e0a016ee37 cmake: Update download logic 2021-03-23 20:56:24 +01:00
Michael Fabian 'Xaymar' Dirks
c98991c60c ci: Add caching for many steps 2021-03-23 20:56:24 +01:00
Michael Fabian 'Xaymar' Dirks
c09916dd85 ci: Also trigger validation on tags 2021-03-23 14:52:57 +01:00
Michael Fabian 'Xaymar' Dirks
bcd3a52f60 ci: (MacOS) Automatically detect Homebrew prefix 2021-03-23 14:52:57 +01:00
Michael Fabian 'Xaymar' Dirks
de0b0e6426 cmake: (MacOS) Fix linker path for libraries 2021-03-23 14:52:57 +01:00
Michael Fabian 'Xaymar' Dirks
95c32da1de ci: (MacOS) Fix installation of Qt5
Homebrew now defaults to Qt6, but we still require Qt5 for the time being.
2021-03-23 14:52:57 +01:00
Michael Fabian 'Xaymar' Dirks
129a1fd10d ci: Fix formatting for main.yml 2021-03-23 14:52:57 +01:00
Michael Fabian 'Xaymar' Dirks
afc0962072 project: 0.10.0b1 2021-02-21 04:41:51 +01:00
Xaymar
aad4835fe9
locale: New Crowdin updates (#464)
* New translations en-US.ini (Japanese)
2021-02-21 04:35:36 +01:00
Michael Fabian 'Xaymar' Dirks
4c9697dfdd cmake: (MacOS) Install to a more reasonable structure 2021-02-21 04:35:12 +01:00
Michael Fabian 'Xaymar' Dirks
d5be34ab55 cmake: Don't require code signing on MacOS 2021-02-21 04:35:12 +01:00
Michael Fabian 'Xaymar' Dirks
53f2edcc87 ci: Add builds for MacOS x86-64
Due to OBS Studio not yet supporting ARM64 out of the box, we currently only provide builds for x86. Additionally, due to our use of C++17 (which we will not drop to C++14, don't bother asking), the minimum OSX version is 10.15.
2021-02-21 04:35:12 +01:00
Michael Fabian 'Xaymar' Dirks
49beafb425 cmake: Add otool post-build steps for MacOS 2021-02-21 04:35:12 +01:00
Michael Fabian 'Xaymar' Dirks
f9af350768 ffmpeg/tools: Fix incorrect transfer characteristics
Both Rec. 601 and sRGB looked extremely wrong before, resulting in weird or warped colors. Since it is very difficult to find up to date and accurate information on standards, we should simply go for what has the most widespread support.
2021-02-21 04:04:31 +01:00
Michael Fabian 'Xaymar' Dirks
7829817f77 project: Version 0.10.0a2
* 3D Transform should now appear again.
* Automatic disabling of unsupported features should now work in CMake.
* Fixed a compilation error on some versions of GCC.
2021-02-17 01:20:23 +01:00
Michael Fabian 'Xaymar' Dirks
612c2f5213 obs/gs/vertex: Don't include unused headers 2021-02-14 13:41:10 +01:00
Michael Fabian 'Xaymar' Dirks
31b7b06af1 nvidia/cuda: Use reinterpret_case instead of static_cast 2021-02-14 13:33:53 +01:00
Michael Fabian 'Xaymar' Dirks
e6910406bb cmake: Fix features being enabled on unsupported platforms 2021-02-14 13:33:45 +01:00
Michael Fabian 'Xaymar' Dirks
8177f4c5b2 cmake: Fix TRANSFORM typo 2021-02-14 13:33:45 +01:00
Michael Fabian 'Xaymar' Dirks
fbe35d15c4 project: Version 0.10.0a1
- #437 Use 'git describe --tags' for versioning.
- #439 Add support for overriding the automatically detected version.
- #454 Fixed new versioning code breaking when the tag is on the current commit.
- #427, #428 Fix Qt interaction before OBS Studio is actually ready.
- #452 Fixed building without updater but with UI.
- #447 Redesigned Color Grading to support two rendering modes:
    - Direct Rendering applies the entire color grading function to every single pixel, and is thus more accurate, but much slower.
    - #-Bit LUT Rendering first applies the color grading function to a LUT that varies in accuracy, and then uses that LUT to render the actual output instead, which is much faster but less accurate.
- #447 Optimized Direct Rendering in Color Grading to be up to 25% faster, while using 50% less VRAM.
- #440 Removed support for Ubuntu 18.04 as it ships seriously outdated versions of libraries we use.
2021-02-06 16:52:25 +01:00
Michael Fabian 'Xaymar' Dirks
b632d6eff5 cmake: Always use long git describe 2021-02-06 16:29:22 +01:00
Michael Fabian 'Xaymar' Dirks
e436d22367 filters/color-grade: Redesign for use with LUTs
There is hardly any reason for us to recalculate everything all the time. LUTs can cache the work once, and then re-use it every time necessary, drastically reducing the impact of Color Grading by almost 60% (on some GPUs even more). Additionally this fixes the negative gamma issue, which plagued the filter for a while.

In the future, once PR 4199 (https://github.com/obsproject/obs-studio/pull/4199) has been merged, we can cut away one intermediate rendering step currently required to make the effect work. Hopefully this will be with the 27.x release of OBS Studio.
2021-02-06 16:22:22 +01:00
Michael Fabian 'Xaymar' Dirks
f396f52054 gfx/lut: Add a simple but efficient LUT producer and consumer
For simple image and video editing, LUTs (Look-Up Tables) are vastly superior to running the entire editing operation on each pixel - especially if all the processing can be done inside a single shader.

Due to the post-processing requirements for our LUTs, we are limited to 8 bits per channel - though clever use of the unused Alpha channel may result in additional space. For our purposes however, this is definitely enough.
2021-02-06 16:22:22 +01:00
Michael Fabian 'Xaymar' Dirks
92e0c03008 effects: Add RGB, HSV, and YUV conversion functions 2021-02-06 16:22:22 +01:00
Michael Fabian 'Xaymar' Dirks
6d1d85ae2b effects: Add generic shared header with common code 2021-02-06 16:22:22 +01:00
Xaymar
7b2da84ded
locale: New Crowdin updates (#449)
* New translations en-US.ini (French)
2021-02-06 13:35:50 +01:00
tytan652
1d80c0bef0 ui: Don't reference Updater if it's been disabled
Merges #446
2021-02-06 13:35:15 +01:00
kilin
999362b5f9
examples: Add Pixelation filter shader (#418) 2021-02-06 13:18:05 +01:00
Michael Fabian 'Xaymar' Dirks
a93e08725f ci: Update scripts for refactor and adjust OBS to v26.1.x 2021-02-02 11:53:32 +01:00
Michael Fabian 'Xaymar' Dirks
2e24c783ae cmake: Add packaging support for Windows, Linux and Mac
Also adds packaging for the proposed unified plugin format.
2021-02-02 11:53:32 +01:00
Michael Fabian 'Xaymar' Dirks
239e01558d cmake: Refactor component and dependency system
A complete redesign of the component and dependency system is necessary in order to support additional platforms, such as MacOS and other Linux platforms. Additionally it results in a much cleaner code base, which is less confusing overall.

Eventually it might be necessary to push components of StreamFX into their own CMake projects, as it is getting kind of complex now. Especially with the push for a proper plugin manager, things get dicey for big plugins like StreamFX.
2021-02-02 11:53:32 +01:00