In window capture, it will search for a window with a specific title,
but will not search minimized windows. This fixes that by making is
acquire the correct window even if that window is minimized, rather than
potentially risk it capturing the wrong window of the same type.
Fixes a CEF initialization issue where CefInitialize would internally
call a Chromium function that would change process permissions. The
permissions it changed would break other functionality within the
program, such as the new window capture method based upon
Window.Graphics.Capture.
This ensures that the OBSBasicSettings destructor has been run before
the restart prompt appears, preventing bugs related to OBS shutting down
with the settings window still having active callbacks.
This can be fired by a callback during source removal. The code was
re-adding the source that was just removed, causing the program to
freeze when trying to remove all sources.
Checks the hook version to ensure compatibility with hook DLL. It's
unlikely it'll ever be necessary to increment the hook version, but this
is just a precautionary thing that allows a hook DLL to make sure it's
rejected by an older OBS version if needed. Again however, very
unlikely that the major version will ever be incremented.
The inject helper should be able to specify the full path rather than
assume the path of the hook DLL. This change allows us to modify the
hook's location. This needs to be done because the hook needs to be
relocated to ProgramData to prevent the possibility of multiple Vulkan
capture hooks.
Prevents multiple separate hook DLLs from being loaded in to a target at
once. This is done just in the off-chance that someone might add
another hook to the Vulkan layer registry.
Allows automatically outputting the function name as part of the hook
logging. This really doesn't need to be a manual process. Makes code a
bit cleaner when used.
'PlugIns' is normal for MacOS and whatever is generating qt.conf
(macdeployqt?) is using 'PlugIns', so this both builds and generates
an app that works on case insensitive filesystems but fails to load
on case sensitive filesystems.
I haven't tested building the installer, only modifying the
qt.conf in the installed copy of OBS.app.
Fixes https://github.com/obsproject/obs-studio/issues/2302
This reverts commit ff22c20019.
This caused a bug in FTL output, which started hitching after this
commit. Presumably due to opus; it's likely you're not supposed to do
this with all audio encoders.
This re-uses the game capture code for checking whether the original
window still exists or not. If it doesn't or the name changed, it'll
insert the value at the top of the list so it doesn't automatically
select another when the user opens properties.
Basically, this fixes an issue where opening properties could sometimes
cause it to instantly capture whatever window was at the top of the
list, which is undesirable.
Closesobsproject/obs-studio#2421