Commit graph

221 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
a0fc00ed64 cmake: Fix incorrect target for interface include directories 2023-04-05 18:51:18 +02:00
Michael Fabian 'Xaymar' Dirks
247553fa74 filter/denoising: Add Denoising filter 2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
843a76d1c6 filter/upscaling: 'Video Super-Resolution' -> 'Upscaling'
The previous name was too strict on what could be put into the effect, and would result in additional clutter in the Filter menu when we eventually decide to support other Upscaling methods than Super-Resolution networks.
2023-04-05 18:51:17 +02:00
Michael Fabian 'Xaymar' Dirks
cebd8fa744 nvidia/vfx/effect: Implement managed effect wrapper
Slightly simplifies interaction with effects.
2023-04-05 18:51:16 +02:00
Michael Fabian 'Xaymar' Dirks
9a4ab558c0 encoders/aom-av1: AV1 encoder based on libaom 2023-04-05 18:51:15 +02:00
Michael Fabian 'Xaymar' Dirks
91c9df3097 project: Apply Coding Guidelines 2023-04-05 18:51:13 +02:00
Michael Fabian 'Xaymar' Dirks
668b8af213 project: Version 0.11.0a3 2023-04-05 18:51:12 +02:00
Michael Fabian 'Xaymar' Dirks
3dd65e8815 cmake: Check for provider instead of feature 2023-04-05 18:51:10 +02:00
Michael Fabian 'Xaymar' Dirks
da339e6e26 project: Version 0.11.0a2 2023-04-05 18:51:09 +02:00
Michael Fabian 'Xaymar' Dirks
bb03864664 filter/video-superresolution: Add Video Super-Resolution filter 2023-04-05 18:51:09 +02:00
Michael Fabian 'Xaymar' Dirks
02c6156f2e nvidia/vfx: Add wrapper for NVIDIA Video Effects SDK 2023-04-05 18:51:09 +02:00
Michael Fabian 'Xaymar' Dirks
04c3b88d5d nvidia/cv/texture: Wrapper for gs::texture Images 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
8784c91ec6 nvidia/cv/image: Wrapper for Images 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
84a7685d7b nvidia/cv: Add NVIDIA Computer Vision wrapper 2023-04-05 18:51:08 +02:00
Michael Fabian 'Xaymar' Dirks
5279993f4b plugin: If CUDA is requested, ensure it is loaded first 2023-04-05 18:51:07 +02:00
Michael Fabian 'Xaymar' Dirks
57f15b64f7 util/platform: Add Path and String conversion utility functions 2023-04-05 18:51:06 +02:00
Michael Fabian 'Xaymar' Dirks
8eef6ddd85 project: Version 0.11.0a1 2023-04-05 18:51:02 +02:00
Michael Fabian 'Xaymar' Dirks
5d4f88e614 gfx/blur: Reduce code duplication with shared file
A lot of the blur effects share quite a bit of code, which can be offloaded into a single include.
2023-04-05 18:51:01 +02:00
Michael Fabian 'Xaymar' Dirks
bac7323357 cmake: Fix NVIDIA trademark 2023-04-05 18:50:55 +02:00
Michael Fabian 'Xaymar' Dirks
8ab8d66977 cmake: Update for OBS Studio 27.0.0
* OBS Studio 27.0.0 supports ARM64 on MacOS directly.
* Windows now uses "Detours" for hooking into Windows API functions.
2023-04-05 18:50:55 +02:00
Michael Fabian 'Xaymar' Dirks
9ed02fe079 cmake: Adjust minimum libOBS version to 27.0.0-rc2 2023-04-05 18:50:53 +02:00
Michael Fabian 'Xaymar' Dirks
7bedb337b9 nvidia/cuda/obs: Add simple CUDA manager for OBS 2023-04-05 18:50:51 +02:00
Michael Fabian 'Xaymar' Dirks
5cd1d13d5f nvidia/cuda/context: Merge context-stack into context header 2023-04-05 18:50:50 +02:00
Michael Fabian 'Xaymar' Dirks
b4a229e26f util/logging: Add logging utility
Also contains the function signature and name macros.
2023-04-05 18:50:49 +02:00
Michael Fabian 'Xaymar' Dirks
cf8b2c818a project: Version 0.10 2023-03-28 13:11:22 +02:00
Michael Fabian 'Xaymar' Dirks
e4f3dd263d project: Version 0.10.0b3 2023-03-28 13:11:20 +02:00
Michael Fabian 'Xaymar' Dirks
2a48036e7d 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.
2023-03-28 13:11:18 +02:00
Michael Fabian 'Xaymar' Dirks
af660cfc1d cmake: (Windows) Fix incorrect reference to CMAKE_PACKAGE_PREFIX 2023-03-28 13:11:16 +02:00
Christopher P Yarger
483e3a5f2d 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.
2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks
8189076cd2 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.
2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks
d24fb07dcc cmake: Update download logic 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks
d8bb1cecc5 cmake: (MacOS) Fix linker path for libraries 2023-03-28 13:11:15 +02:00
Michael Fabian 'Xaymar' Dirks
597a240d73 project: 0.10.0b1 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks
24f1cd0cde cmake: (MacOS) Install to a more reasonable structure 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks
cb2621f98b cmake: Don't require code signing on MacOS 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks
5b893ca5d6 cmake: Add otool post-build steps for MacOS 2023-03-28 13:11:14 +02:00
Michael Fabian 'Xaymar' Dirks
03a8168beb 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.
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
01f16e6d1f cmake: Fix features being enabled on unsupported platforms 2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
be699c643c cmake: Fix TRANSFORM typo 2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
c95afab9d4 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.
2023-03-28 13:11:12 +02:00
Michael Fabian 'Xaymar' Dirks
e59a33423e cmake: Always use long git describe 2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks
26a76e0451 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.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks
eba0a467d5 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.
2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks
73f9257633 effects: Add RGB, HSV, and YUV conversion functions 2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks
a027a57d09 effects: Add generic shared header with common code 2023-03-28 13:11:11 +02:00
Michael Fabian 'Xaymar' Dirks
b1b6fa2cf9 cmake: Add packaging support for Windows, Linux and Mac
Also adds packaging for the proposed unified plugin format.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
5ac894c59c 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.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
851e1e8939 cmake: Add proper version override support 2023-03-28 13:11:09 +02:00
Michael Fabian 'Xaymar' Dirks
2d522f3c50 cmake: Improve versioning system 2023-03-28 13:11:07 +02:00
Michael Fabian 'Xaymar' Dirks
2f8a0935c5 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
2023-03-28 13:11:07 +02:00