Commit graph

13139 commits

Author SHA1 Message Date
PatTheMav 9805b706d1 cmake: Remove legacy files for macOS builds 2023-06-17 12:23:33 -04:00
PatTheMav 50a4e83251 cmake: Remove Info.plist template files for macOS builds
Creation of Info.plist files through Xcode is more canonical and
future-proof, as it will automatically pick up changes/updates
introduced by Apple. Non-standard keys can still be added via a
template file, which will then be extended by Xcode with the default
keys.
2023-06-17 12:23:33 -04:00
PatTheMav eb3d9963a0 cmake: Update macOS compiler configuration
Compiler extensions are disabled before the first `project` call to
force CMake into considering compilers to not support GNU extensions
(even though clang and gcc do).

Also sets common clang compiler options so they can be used across all
supported platforms.

`openmp-simd` support is enabled by default as there is no performance
penalty on x86_64 systems and intrinsics are enabled on arm64.

Also implements CMake's `CMAKE_COMPILE_WARNING_AS_ERROR` flag to
enable the desired behavior and configuration time.
2023-06-17 12:23:33 -04:00
PatTheMav e2e3c9e102 cmake: Fix CMake policy scopes and add include guards
Include guards ensure that bootstrap includes happen only once for the
entire project. Moving all policy changes into an included file without
its own policy scope ensures that the policy is applied to the project.
2023-06-17 12:23:33 -04:00
PatTheMav 887b537d56 cmake: Update buildspec and presets for macOS 2023-06-17 12:23:33 -04:00
gxalpha 1edd997c49 mac-syphon: Remove unused OBSSyphonKVObserver 2023-06-17 16:36:08 +02:00
gxalpha fc6bbb73f2 mac-capture: Fix wrong CFString to NSNumber cast 2023-06-17 16:35:13 +02:00
gxalpha 59b5b07400 mac-capture: Add SCStreamDelegate to stream to log capture errors 2023-06-17 16:33:52 +02:00
Lain 1bbb3fa773 libobs: Update version to 29.1.3 2023-06-17 00:44:00 -07:00
Huts, Roman 94d0b654f0 obs-ffmpeg: Fix logic in one of the AMF preset fallback checks 2023-06-16 18:37:07 -04:00
PatTheMav 4d5b6eb50f
cmake: Disable automatic sorting of compiler flags
Also restores original order of compiler flags and more explicitly
splits up flags for the specific languages in which they take effect.

Notice that ObjC and ObjC++ follow a slightly stricter set of rules
than C and C++, which is reflected by this fix.
2023-06-16 23:21:35 +02:00
PatTheMav e9972f5198
cmake: Fix truncation warning being treated as an error with Ninja 2023-06-16 20:48:49 +02:00
PatTheMav 29dc42decd cmake: Enable suggested default Xcode build settings for macOS builds
Also updates Ninja-based clang settings to ensure builds fail on same
compilation issues.
2023-06-16 14:12:58 -04:00
PatTheMav c7ec604df1 cmake: Disable Framework code signing at build time
Frameworks should be archived and exported (where they will be
codesigned by Xcode) or shipped within an App bundle where Xcode will
also take care of it.
2023-06-16 14:12:58 -04:00
PatTheMav 9f0a2547ac UI: Fix preventing copy elision of a temporary string object 2023-06-16 14:12:58 -04:00
PatTheMav 3d78c23db8 obs-outputs: Silence all ftl-sdk warnings
The FTL SDK is outdated and not actively maintained - the warnings are
known and acknowledged, so there is no need to further pollute the
build output with them.
2023-06-16 14:12:58 -04:00
PatTheMav fffbf6c801 obs-outputs: Fix clang warnings about unreachable code 2023-06-16 14:12:58 -04:00
PatTheMav 0235ac2fb2 mac-virtualcam: Use explicit access to object members in async block 2023-06-16 14:12:58 -04:00
PatTheMav 53cfe5cb7f mac-videotoolbox: Remove unreachable code to fix clang warning 2023-06-16 14:12:58 -04:00
PatTheMav 4c4a4f9d9f mac-capture: Fix clang warning about unreachable code 2023-06-16 14:12:58 -04:00
PatTheMav 04f8039b3e obs-scripting: Silence clang warnings about unreachable code
Source code is generated by Swig, so we just silence the warning.
2023-06-16 14:12:58 -04:00
PatTheMav 343055c889 UI: Wrap unreachable code in comment to fix clang warnings
The branch is never taken and the code acts as documentation for a
(possible) future use case. According to YAGNI it could be removed
entirely, wrapping it in a comment is the less destructive approach.
2023-06-16 14:12:58 -04:00
PatTheMav 5a7b95cd8c obs-outputs: Silence clang warning about questionable use of comma 2023-06-16 14:12:58 -04:00
PatTheMav 3ca56fee84 libobs: Silence clang warnings for empty prototypes without void
clang expects an empty prototype to explicitly use `void`.

Also silences the warning in `libobs-opengl`, `obsglad`, `caption`,
`mac-syphon` and `obs-x264-test`.
2023-06-16 14:12:58 -04:00
PatTheMav 5ca17aa25f UI: Disable warnings emitted by Qt frameworks
Qt uses quoted includes in Framework headers (which is discouraged
by Apple) and also has some questionable use of the comma operator.
2023-06-16 14:12:58 -04:00
Ryan Foster ced135a68e obs-websocket: Update version to 5.2.3 2023-06-15 21:01:09 -04:00
gxalpha 83be21a60d mac-syphon: Remove syphon-framework submodule 2023-06-15 13:08:41 -04:00
gxalpha 6e7e4acb93 mac-syphon: Update Syphon, use obs-deps framework
Updates the syphon to use the Syphon.framework from obs-deps instead of
the submodule.
The submodule however was not updated in 9 years and additionally had
custom patches, compared to the obs-deps release that's built on the
current git commit of Syphon, meaning that some code changes are
necessary. It would be nice to split the code and cmake changes into
multiple commits (where the first would update the submodule and contain
the plugin code changes, and the second switch the cmake away from the
submodule to the obs-deps release), but it really doesn't make sense to
update the submodule first if it gets removed anyways.

Adds a subclass for SyphonClientBase that is responsible for receiving
the frames. This has the advantage that it doesn't need an OpenGL
context like the existing SyphonOpenGLClient, and can just return an
IOSurface directly (without some kind of middleman).
2023-06-15 13:08:41 -04:00
Colin Edwards d31d271b43 UI: Move WHIP service to the bottom of the visible list 2023-06-15 12:38:11 -04:00
John Bradley 8981afe5b4 libobs: Set video thread qos class to user interactive on macOS 2023-06-15 15:25:47 +02:00
Ruwen Hahn 9b5ce9fcec
libobs: Fix null pointer access for video packets
Initialize arrays to 0, as otherwise these can get initialized with 
garbage data or potentially Visual Studio's default debug marker,
which is a problem if they're being checked against `NULL` later.
2023-06-14 19:52:05 +02:00
John Bradley 6ec0b2db11 libobs: Add support to obs-outputs for multi video encoders
This adds support in outputs to handle multiple video encoders
and their interleaving with the encoded audio.
2023-06-14 02:24:54 -07:00
PatTheMav cb391a595d
Update git-blame-ignore-revs to ignore recent ObjC formatting update 2023-06-11 15:11:08 +02:00
PatTheMav f8e00d6071 clang-format: Update formatting of all ObjC and ObjC++ files 2023-06-11 14:56:45 +02:00
PatTheMav db7491083c Update clang-format file for ObjC code 2023-06-11 14:56:45 +02:00
gxalpha 575c085f7a text-freetype2: Improve text/file properties UX 2023-06-10 23:50:57 -07:00
cg2121 45e895206d UI: Render preview lines above safe areas
Moves the preview lines around sources to be rendered above the
preview safe area lines.
2023-06-10 17:35:57 -07:00
derrod 263781c6c6 libobs: Fix crash when properties are deleted in callback
(cherry picked from commit 447710ab2c)
2023-06-11 02:18:17 +02:00
derrod 66b3a04424 UI: Assume RTMP if service has no protocol
(cherry picked from commit e26a04fa44)
2023-06-11 02:18:17 +02:00
derrod 8983083cec updater: Refactor and cleanup 2023-06-11 02:17:28 +02:00
derrod ef3a67708e UI: Support PCM in MP4 2023-06-10 17:10:30 -07:00
derrod d53ed7daed deps/libff: Add ff_supports_pcm_in_mp4() 2023-06-10 17:10:30 -07:00
columbarius a2b8ff2e35 linux-pipewire: Skip processing video buffer if import failed
After a failed import we should signal buffer renegotiaten and then just
skip processing this videobuffer.
2023-06-10 17:03:19 -07:00
gxalpha 5cba879dd5 obs-webrtc: Use old obs_output functions
The obs-webrtc PR was merged before 79822a58c, but the PR of 79822a58c
was not rebased on latest master before being merged. As such, the
usages of the obs_output_*2 functions was not removed by that PR.
2023-06-10 16:52:56 -07:00
Colin Edwards 353a4c860d UI: Don't show WHIP in stream settings if the protocol isn't registered 2023-06-10 16:50:55 -07:00
Exeldro e830043851 UI: Don't update text source when nothing changed 2023-06-10 16:45:42 -07:00
CodeYan01 26003fdf79 docs: Clarify da_erase_range 2023-06-10 16:40:33 -07:00
gxalpha fe2eee951b UI: Don't create combobox for radio buttons in properties view 2023-06-10 16:13:57 -07:00
gxalpha 79822a58c3 libobs,plugins: Remove new obs_output_*2 functions
Effectively reverting parts of d314d47, this commit removes the new
functions that got added to remove the flags parameter. Instead, it just
marks the parameter as unused and documents this. Having what is
effectively an API break just to remove a parameter is a bit overkill.
The other parts of d314d47 which cleaned up the usage of the flags
parameter are untouched here.
2023-06-10 16:13:05 -07:00
cg2121 5cc319d97f UI: Change name of ResetProxyStyleSliders function
Changes the name to ThemeChanged, as the function now does more than
reset the volume sliders.
2023-06-10 16:06:16 -07:00