Commit Graph

1522 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks 9e6171ab06 ci: Upgrade to LLVM/Clang 14.x 2023-04-05 18:58:26 +02:00
Michael Fabian 'Xaymar' Dirks 8241a7eb97 ci: Allow failures for experimental CI tests 2023-04-05 18:58:26 +02:00
Michael Fabian 'Xaymar' Dirks ba436e406a ci: Don't fast-fail as some failures are okay 2023-04-05 18:58:26 +02:00
Michael Fabian 'Xaymar' Dirks 36482ac020 ci: Update CMAKE_SYSTEM_VERSION to System Requirements
The updated SDK fixes critical crashes.
2023-04-05 18:58:26 +02:00
Michael Fabian 'Xaymar' Dirks b3efea50ef ci: Add ClangCL to MSVC/Windows 2023-04-05 18:58:26 +02:00
Michael Fabian 'Xaymar' Dirks 35baf7e3c5 ci: Correctly remove builds from the matrix
Re-enables GCC, which is still very much in use.
2023-04-05 18:58:25 +02:00
Michael Fabian 'Xaymar' Dirks f34a4e7c95 ci: Update and merge scripts into one file
- Updates all workflow actions to the latest major version where possible.
- Updated GCC to version 10 on Ubuntu.
- Update Clang to version 14 on Ubuntu.
- Removed CodeQL as it turned out to be completely useless.
- Updated validation script.
- Updated build script
2023-04-05 18:58:25 +02:00
Michael Fabian 'Xaymar' Dirks d7dc5804d4 cmake: Update clang submodule
Fixes #799
2023-04-05 18:58:25 +02:00
Michael Fabian 'Xaymar' Dirks 0ea796de94 cmake: Fix some poorly formatted messages 2023-04-05 18:58:25 +02:00
Michael Fabian 'Xaymar' Dirks afdddd9381 cmake: Split optimizations by platform and compiler
Also make fast math optional on all platforms and compilers.
2023-04-05 18:58:25 +02:00
Michael Fabian 'Xaymar' Dirks a5b20c85b0 cmake: Add support for older libOBS versions
This is necessary for libOBS 27.2 and earlier, as the file name is LibObsConfig.cmake, not libobsConfig.cmake.
2023-04-05 18:58:24 +02:00
Michael Fabian 'Xaymar' Dirks 9fbbcdf89d cmake: Adjust install and package logic for libOBS 27.2
Also add basic support for libOBS 28.0
2023-04-05 18:58:24 +02:00
Michael Fabian 'Xaymar' Dirks 7e41414f57 cmake: Allow targeting a specific architecture level 2023-04-05 18:58:24 +02:00
Michael Fabian 'Xaymar' Dirks 5f050515ba cmake: Further improve libOBS and obs-frontend-api detection 2023-04-05 18:58:23 +02:00
Michael Fabian 'Xaymar' Dirks ad48e74410 cmake: Fix formatting 2023-04-05 18:58:23 +02:00
Michael Fabian 'Xaymar' Dirks 59411d42d5 cmake: Don't enable clang integration by default
Affects #799
2023-04-05 18:58:23 +02:00
Michael Fabian 'Xaymar' Dirks a5de211768 cmake: Add Link-Time Optimization option if supported 2023-04-05 18:58:23 +02:00
Michael Fabian 'Xaymar' Dirks 583ba282f8 cmake: Merge standalone detection into single conditional 2023-04-05 18:58:22 +02:00
Michael Fabian 'Xaymar' Dirks 65afefd0ba cmake: Use CMAKE_MESSAGE_INDENT if available 2023-04-05 18:58:22 +02:00
Michael Fabian 'Xaymar' Dirks 56f50fcc54 cmake: Require version 3.13 or newer 2023-04-05 18:58:22 +02:00
Michael Fabian 'Xaymar' Dirks 6852a2468b project: Version 0.12.0a1 2023-04-05 18:58:22 +02:00
Michael Fabian 'Xaymar' Dirks 8a31b986ab project: Update to new classes 2023-04-05 18:58:22 +02:00
Michael Fabian 'Xaymar' Dirks 3667426f49 obs/signal-handler: Update to new classes 2023-04-05 18:58:22 +02:00
Michael Fabian 'Xaymar' Dirks b108362ee1 gfx/source-texture: Update to new classes 2023-04-05 18:58:21 +02:00
Michael Fabian 'Xaymar' Dirks fc693e0210 obs/tools: Remove more legacy tools 2023-04-05 18:58:21 +02:00
Michael Fabian 'Xaymar' Dirks 39548e760d obs/tools: Replace scene_contains_source
As the recursion checking code is somewhat broken in libOBS, we need something to prevent accidental recursion from occurring. While the alternative fix is to simply make all of libOBS support recursion, unfortunately that endeavor would be too large for a single person to take on.
2023-04-05 18:58:21 +02:00
Michael Fabian 'Xaymar' Dirks e3c7b13d6f obs/source-factory: Add support for OBS Studio 27.x
Also improves the functionality logic slightly to be more in line with real behavior.
2023-04-05 18:58:21 +02:00
Michael Fabian 'Xaymar' Dirks 9bbc35b293 obs/source: Refactor old deprecated classes 2023-04-05 18:58:21 +02:00
Michael Fabian 'Xaymar' Dirks 6dd661a41c obs/source-tracker: Fix missing sources and modernize singleton design
In some rare cases, a bug is observed where some sources end up missing despite being visible in the OBS Studio UI. This is most likely related to us actually missing the events due to plugin load order. We can fix this by explicitly enumerating sources in the constructor.

Additionally in order to reduce the human error factor, we should avoid explicit initialize() and finalize() calls for our singleton. Instead the get() function should do all of the heavy lifting, including thread safety, so that the human writing the code will have next to no chances to break it.
2023-04-05 18:58:20 +02:00
Michael Fabian 'Xaymar' Dirks 0627628884 obs/tools: Remove work-around for obs_properties_remove_by_name
The bug fix to this was applied upstream, so we no longer need to support the broken behavior
2023-04-05 18:58:20 +02:00
Michael Fabian 'Xaymar' Dirks 98e2447ec8 common: Add macro to force inlining 2023-04-05 18:58:20 +02:00
Michael Fabian 'Xaymar' Dirks f160580794 cmake: Improve build system with additional features and options
- Moved all auto-dependencies to a uniform subdirectory for easier caching and cleanup.
- Add an option to download or specify a path for libOBS+obs-frontend-api.
- Remove the dependency on the non-standard obs-frontend-apiConfig.cmake file.
- Add an option to download or specify a path for OBS Dependencies.
- Add an option to download or specify a path for Qt.
- Add an option to download or specify a path for AOM.
- Fix and improve architecture and platform detection.
- Fix some messages having two :, or no prefix at all.
- Fix detection of obs-frontend-api.
- Fix applying custom compiler and linker flags for MSVC and GNU-style builds.
- Use target_compile_options over add_compile_options for compatibility.
2023-04-05 18:58:20 +02:00
Xaymar 56f2ae4290 locale: New Crowdin updates (#786)
* New translations en-US.ini (Arabic)
* New translations en-US.ini (Bosnian)
* New translations en-US.ini (Bulgarian)
* New translations en-US.ini (Chinese Simplified)
* New translations en-US.ini (Chinese Traditional, Hong Kong)
* New translations en-US.ini (Chinese Traditional)
* New translations en-US.ini (Croatian)
* New translations en-US.ini (Czech)
* New translations en-US.ini (Danish)
* New translations en-US.ini (Dutch)
* New translations en-US.ini (English, Australia)
* New translations en-US.ini (English, Canada)
* New translations en-US.ini (English, United Kingdom)
* New translations en-US.ini (Estonian)
* New translations en-US.ini (Faroese)
* New translations en-US.ini (Finnish)
* New translations en-US.ini (French)
* New translations en-US.ini (German)
* New translations en-US.ini (Greek)
* New translations en-US.ini (Hebrew)
* New translations en-US.ini (Hungarian)
* New translations en-US.ini (Icelandic)
* New translations en-US.ini (Indonesian)
* New translations en-US.ini (Irish)
* New translations en-US.ini (Italian)
* New translations en-US.ini (Japanese)
* New translations en-US.ini (Korean)
* New translations en-US.ini (Mongolian)
* New translations en-US.ini (Norwegian)
* New translations en-US.ini (Persian)
* New translations en-US.ini (Polish)
* New translations en-US.ini (Portuguese, Brazilian)
* New translations en-US.ini (Portuguese)
* New translations en-US.ini (Romanian)
* New translations en-US.ini (Russian)
* New translations en-US.ini (Serbo-Croatian)
* New translations en-US.ini (Sinhala)
* New translations en-US.ini (Spanish)
* New translations en-US.ini (Swedish)
* New translations en-US.ini (Thai)
* New translations en-US.ini (Turkish)
* New translations en-US.ini (Ukrainian)
* New translations en-US.ini (Vietnamese)
2023-04-05 18:58:20 +02:00
carsten.braun 0540a18f27 encoders/ffmpeg/dnxhr: Add Avid DNxHR Encoder based on FFmpeg 2023-04-05 18:58:18 +02:00
Xaymar a6b11f68d3 locale: New Crowdin updates (#778)
* New translations en-US.ini (Finnish)

* New translations en-US.ini (Finnish)

* New translations en-US.ini (German)

* New translations en-US.ini (Chinese Simplified)
2023-04-05 18:58:18 +02:00
Chris Pence f93d5c2202 encoder/ffmpeg: Remove legacy API usage (#783)
The build breaks if compiling against a newer version of ffmpeg which does not define the FF_API_NEXT macro and has fully removed the av_codec_next() API.
2023-04-05 18:58:18 +02:00
Michael Fabian 'Xaymar' Dirks 03b16786e7 encoders/ffmpeg/nvenc: Improve compatibility with FFmpeg
Replaces some very specific code with generic support for FFmpeg, which should last us much longer than the old way. Also improves the migration of settings, which wasn't quite working with the previous way.
2023-04-05 18:58:17 +02:00
Michael Fabian 'Xaymar' Dirks 378f2b3f0e ffmpeg/tools: Improve helper functions for AVOption lists 2023-04-05 18:58:17 +02:00
Xaymar 0da1e77b22 locale: New Crowdin updates (#772)
* New translations en-US.ini (Portuguese, Brazilian)

* New translations en-US.ini (Portuguese, Brazilian)

* New translations en-US.ini (Japanese)

* New translations en-US.ini (Portuguese, Brazilian)

* New translations en-US.ini (Thai)

* New translations en-US.ini (Turkish)

* New translations en-US.ini (Chinese Simplified)

* New translations en-US.ini (Chinese Traditional)

* New translations en-US.ini (Russian)

* New translations en-US.ini (English, United Kingdom)

* New translations en-US.ini (Portuguese)

* New translations en-US.ini (Japanese)

* New translations en-US.ini (Romanian)

* New translations en-US.ini (French)

* New translations en-US.ini (Spanish)

* New translations en-US.ini (Arabic)

* New translations en-US.ini (Czech)

* New translations en-US.ini (German)

* New translations en-US.ini (Finnish)

* New translations en-US.ini (Polish)

* New translations en-US.ini (Hungarian)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Korean)

* New translations en-US.ini (Dutch)

* New translations en-US.ini (Norwegian)

* New translations en-US.ini (Romanian)

* New translations en-US.ini (Hungarian)

* New translations en-US.ini (Hungarian)

* New translations en-US.ini (Romanian)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Russian)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Russian)

* New translations en-US.ini (Russian)

* New translations en-US.ini (Russian)
2023-04-05 18:58:17 +02:00
Michael Fabian 'Xaymar' Dirks 36aec3be54 encoders/ffmpeg/nvenc: Ensure compatibility with more than just FFmpeg 4.2
When FFmpeg Encoders was originally written, FFmpeg 4.2 was still new and OBS Studio did not seem to want to update to anything newer for a while. This led to code being fine-tuned for FFmpeg 4.2, which stops working the moment OBS Studio upgrades FFmpeg. This removes the dependency on FFmpeg 4.2 hopefully, and allows using newer FFmpeg versions - or perhaps even older versions.

Additionally the nonsensical behavior of the Target Quality slider was fixed. It is now from 0 to 51, instead of from 0 to 100, and as such matches FFmpeg exactly.
2023-04-05 18:58:17 +02:00
Michael Fabian 'Xaymar' Dirks 7f6047f43f ffmpeg/tools: Helpers for easily populating OBS property lists 2023-04-05 18:58:17 +02:00
Michael Fabian 'Xaymar' Dirks 881c7d920a ci: Ignore specific Packages versions 2023-04-05 18:58:17 +02:00
Xaymar 1e086365ca locale: New Crowdin updates (#748)
* New translations en-US.ini (Japanese)

* New translations en-US.ini (Dutch)

* New translations en-US.ini (Dutch)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Italian)

* New translations en-US.ini (Polish)
2023-04-05 18:58:16 +02:00
Michael Fabian 'Xaymar' Dirks 4d4db59b23 project: Version 0.11.0 2023-04-05 18:51:56 +02:00
Michael Fabian 'Xaymar' Dirks 1f11f699a2 examples: Fix #698 2023-04-05 18:51:56 +02:00
Michael Fabian 'Xaymar' Dirks 53e9811f11 project: Version 0.11.0c1 2023-04-05 18:51:56 +02:00
Michael Fabian 'Xaymar' Dirks a32c2b1104 ui/about: Remove additional spacers
These just break the flow, with no visual improvement.
2023-04-05 18:51:55 +02:00
GitHub Actions 2b0f4bc9bd project: Update Contributors and Supporters 2023-04-05 18:51:55 +02:00
Michael Fabian 'Xaymar' Dirks d83cdf48b9 ci: Properly install Qt@5 on MacOS 2023-04-05 18:51:55 +02:00
Michael Fabian 'Xaymar' Dirks b5cb3440f2 filters/autoframing: Always set projection matrix
Fixes #739
2023-04-05 18:51:55 +02:00