Commit graph

1042 commits

Author SHA1 Message Date
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
Michael Fabian 'Xaymar' Dirks
cd3f9d21c8 sources/mirror: Clamp minimum size to 1x1
This works around an issue in our code with asynchronous or delayed sources.
2021-01-31 19:54:03 +01:00
Michael Fabian 'Xaymar' Dirks
d40ebb5fb1 ci: Remove automatic build support for Ubuntu 18.04
The majority of users should have already switched or upgraded to Ubuntu 20.04 at this point, so there is no point in building further Ubuntu 18.04 versions. This saves us some CI slots, and also reduces the number of target systems to actually support.
2021-01-31 18:24:46 +01:00
Michael Fabian 'Xaymar' Dirks
8f43dd9598 cmake: Add proper version override support 2021-01-31 17:30:50 +01:00
Xaymar
e10d4d106b
locale: New Crowdin updates (#401)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Sinhala)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (Czech)
* New translations en-US.ini (Serbo-Croatian)
2021-01-31 17:21:14 +01:00
Michael Fabian 'Xaymar' Dirks
ed22ccadf5 cmake: Fix DownloadProject version warning 2021-01-31 16:43:05 +01:00
Michael Fabian 'Xaymar' Dirks
171c73d4b4 cmake: Improve versioning system 2021-01-31 16:23:41 +01:00
Michael Fabian 'Xaymar' Dirks
1a2f3962e0 ui: Fix additional Qt issues 2021-01-21 03:28:10 +01:00
Xaymar
0607529cc3
ui/updater: Don't require Qt interaction before OBS is ready (#427)
Fixes one of the launch freezes caused by StreamFX due to interaction with the Qt message loop.
2021-01-21 02:42:56 +01:00
Michael Fabian 'Xaymar' Dirks
b2073a5862 project: Version 0.10.0a
* encoders/ffmpeg: Implement AMF H.264 and H.265 handlers
* locale: New Crowdin updates (Turkish) (#373)
* examples: Added adjustable luminance to hexagon size (#364)
* cmake: Add option to override download versions and hashes
2021-01-21 00:59:49 +01:00
Michael Fabian 'Xaymar' Dirks
98e0e45851 media: Update Icon 2020-12-14 08:08:00 +01:00
Xaymar
9300acec84
locale: New Crowdin updates (#397) 2020-12-04 13:37:29 +01:00
Michael Fabian 'Xaymar' Dirks
b792e56608 source/mirror: Don't ignore data in initializer 2020-12-04 13:28:49 +01:00
Michael Fabian 'Xaymar' Dirks
0c3a8a1d56 filter/shader: Initialize with given data
Ignoring the data parameter during initialization results in duplication and some third party plugins not working as expected, so it's better to not ignore it.

Fixes #315
2020-12-04 13:19:30 +01:00
Michael Fabian 'Xaymar' Dirks
4f5f267451 gfx/shader: Correctly cache shader rendering result
Fixes #392
2020-12-04 13:07:26 +01:00
Xaymar
6d1492e57f
locale: New Crowdin updates (Turkish) (#373) 2020-12-04 08:34:05 +01:00
Michael Fabian 'Xaymar' Dirks
cbd75767fa encoders/ffmpeg: Implement AMF H.264 and H.265 handlers
Adds support for the AMD Advanced Media Framework H.264 and H.265 encoders via FFmpeg. The majority of settings are supported, and the UI/UX experience mimics that of the NVENC implementation. Various settings are left out due to their complexity and should be controlled via the custom parameters field.
2020-12-04 08:32:20 +01:00
Michael Fabian 'Xaymar' Dirks
80ce8b9061 templates/installer: Refactor installer code for easier changes 2020-12-04 07:55:34 +01:00