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.
The spec for nal_ref_idc doesn't indicate that it should be used for
priority like x264 seems to be using it for. NVENC seems to pass
different values, so let's not rely on it.
The new scheme might be naive, but we can iterate on it, and apply
evenly to all H.264 encoders.
Calling `devicePixelRatioF` from any thread but the main UI thread
triggers thread-safety warnings at runtime on macOS, because Qt uses
NSView calls to determine the value.
NSView calls are only allowed to be made from the main thread on macOS,
so instead the value is stored as a property of the OBSQTDisplay at
initialization, to be retrieved from the preview object later.
Static functions that do not have access to the preview object have the
pixel ratio passed in their call signature.