Implements obs_data_get_defaults and updates the documentation. This is
supposed to allow someone to access all the defaults of an object.
Should help in cases where the full data is needed, and not just the
currently set.
Remove beta label for YouTube - RTMPS and make it the default. Remove
YouTube - RTMP service and move the legacy RTMP urls to the Server
dropdown list.
Only auto-select WGC for desktop capture if a battery exists and
multiple GPU adapters are present. May false-positive on desktops with
a smart UPS attached, but we don't know of a better test.
If obs was shutting down in very early in initialization like when the
X11 display is missing this context parameter might still be NULL.
Return early to allow shutdown to complete without crashing.
In CMakeLists.txt, FIND_MODE is not defined here. This was moved from
UI/CMakeLists.txt in commit cb4d2ff7faa8b52cf219ae85fe6caf1d2fc3f906. In
UI/CMakeLists.txt, FIND_MODE is REQUIRED if DISABLE_UI is false or
undefined and ENABLE_UI is true. Since the same booleans are required
for the if-else branch in CMakeLists.txt where we try to find Qt, we can
set find_package to REQUIRED here as well.
Our QT_UTF8(str) macro uses QString::fromUtf8(str) with no size
argument. In Qt5, QString::fromUtf8 uses a default value of -1 for the
size arg. If size is -1, it is taken to be strlen(str). In Qt6,
QString::fromUtf8 doesn't use a default value for the size arg, but has
the same behavior if you manually specify -1 for the size. Let's
manually specify -1 to maintain the same behavior between Qt5 and Qt6.
https://doc.qt.io/qt-5/qstring.html#fromUtf8https://doc.qt.io/qt-6/qstring.html#fromUtf8
This changes cleans up some deprecated functions that were removed in
Qt6. Some are placed behind version ifdefs and others are replaced for
their non-deprecated Qt5 version.
When enumerating the list of encoders offered by VideoToolbox,
there's no reason we can't use the returned ID, which allows us to
remove the hardware/software encoder specific functions. At the
same time, this does add a slight complexity when localizing the
encoder name, so we can fall back to the OS-provided encoder name
if there's not a match.
Previous versions of LuaJIT required setting linker options
-pagezero_size and -image_base. This was accomplished in commit
c9224edbad, but as of LuaJIT 2.1, this is no longer necessary, and
doing so results in the application being killed when run natively
on macOS ARM targets.
The timestamp returned by mHostTime in the AudioTimeStamp structure
is the current timestamp equivalent to mach_absolute_time(), which
is relative to the machine's time base. In order to convert this
to milliseconds, it's necessary to get the host's timebase with
mach_timebase_info() and scale the timestamp accordingly, since
the rest of the timestamp synchronization code expects the timestamp
to be in milliseconds.
This is effectively equivalent to the code which was previously in
libobs/util/platform-coca.m, but must be applied here instead.
macOS should use the function clock_gettime_nsec_np() to get the
current clock in nanoseconds, instead of manually using
mach_absolute_time() and manually adjusting the timebase. This
greatly simplifies the platform-specific code to manage the
current time in nanoseconds.