Some users stream projectors, so don't let them tear. Use the waitable
object to check the flip queue, and only flip if there's space.
Metal and Vulkan can probably perform similar flip throttling once OBS
starts using them.
Fixes CMake build error on Linux:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
COCOA (ADVANCED)
linked by target "macOS_test" in directory /var/tmp/paludis/build/media-video-obs-studio-28.0.0-beta1/work/obs-studio-28.0.0-beta1/test/osx
If the `git describe` command fails we want to fall back to a default
version. _OBS_DEFAULT_VERSION is not in the same format as the string
returned by `git describe` though. In the event that the command fails
just use _OBS_DEFAULT_VERSION directly rather than trying to parse it.
Fixes: cmake fails if git is not installed but .git/ exists #6940
This reverts commit 0532a5c1f0.
Ubuntu 21.10 is from OBS 28 onwards not longer supported and as such we
can raise the requirement of the PipeWire dependency to 0.3.33.
Calling `PyEval_InitThreads` has been deprecated in Python 3.7 and the
function itself will be removed in Python 3.11. The current check
guards this function behind a version check that only happens at compile
time.
This in turn leads to crashes when run on Python 3.6, as the necessary
initialization for `PyEval_ReleaseThread` did not take place.
This commit ensures the manual initialization takes place based on the
runtime version of Python and avoids loading the associated symbols
on Python 3.9 or later.
On CI, do not fetch tags in packaging scripts. For some reason, the
checkout action seems to locally update any new git tags on the runner:
t [tag update] (commit-hash) -> tag-name
This causes future calls to fetch git tags to fail on CI with:
! [rejected] tag-name -> tag-name (would clobber existing tag)
To avoid this, we can simply not fetch tags a second time on CI.
Additionally, fix the Windows Installer job.
If the test process freezes for whatever reason, OBS would block
indefinitely on reading the pipe. This commit adds a 2.5 second timeout
on the AMF test process after which it will self-terminate.
In the event that simply loading the AMF DLL causes initialization code
to run that might crash, don't load the DLL before the AMF test process
has succeeded. Instead, we load the DLL as data to see if it exists,
then run the AMF test, then load the DLL for real.