Commit Graph
2282 Commits
Author SHA1 Message Date
jp9000 7e78c17ace win-capture: Check hook version before capture init
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.
2020-02-29 04:53:29 -08:00
74acbd7ed0 win-capture: Add Vulkan capture
Co-authored-by: jp9000 <obs.jim@gmail.com>
Co-authored-by: jpark37 <jpark37@users.noreply.github.com>
2020-02-29 04:53:28 -08:00
jp9000 72e770458f win-capture: Use full DLL path for inject helper
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.
2020-02-29 00:15:54 -08:00
jp9000 a20f1168a7 win-capture/graphics-hook: Don't allow multiple 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.
2020-02-29 00:15:54 -08:00
jpark37 5c38c6455f win-capture: Refactor create_hook_info 2020-02-29 00:15:54 -08:00
jpark37 39dc64f0f8 win-capture/graphics-hook: Refactor mutex check
OpenMutex doesn't return INVALID_HANDLE_VALUE, so there's no need to
check for that.  Also only call CloseHandle if the call was successful.
2020-02-29 00:15:54 -08:00
jp9000 3e3521b9e1 win-capture/graphics-hook: Fix OBS detection
Fixes where the graphics hook would try to detect if OBS is currently
active or not.
2020-02-28 23:48:11 -08:00
jp9000 ef6a6827f4 win-capture/graphics-hook: Add flog and flog_hr
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.
2020-02-28 23:48:11 -08:00
Jim 0f214bcce6 Merge pull request #1871 from VodBox/game-window-check
win-capture: Fix hook collisions with multiple game captures
2020-02-28 23:47:48 -08:00
jp9000 1e4789f829 obs-outputs: Update FTL sdk to latest version 2020-02-27 06:45:43 -08:00
jp9000 9b37b9273a obs-browser: Fix crash with replay buffer events 2020-02-27 04:59:48 -08:00
jp9000 764d5a2d3f win-capture: Preserve current window setting
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.

Closes obsproject/obs-studio#2421
2020-02-27 04:45:21 -08:00
jp9000 ffe4c767c3 win-capture: Move window capture method below window 2020-02-27 03:22:04 -08:00
Clayton Groeneveld e57d542625 Decklink: Fix crash when no device selected 2020-02-27 01:27:46 -06:00
Jim 535e94dc0e Merge pull request #1759 from cg2121/enable-linux-browser
obs-browser: Enable Linux support
2020-02-26 04:46:38 -08:00
jp9000 389032baa3 obs-browser: Update to 2.8.2 2020-02-26 04:45:26 -08:00
Clayton Groeneveld 61aeaa5ca3 obs-browser: Enable Linux support
This requires CEF >= 3683
2020-02-25 22:38:12 -06:00
jpark37 2111a3a02f libobs-winrt: win-capture: Support client area toggle for WGC 2020-02-24 21:31:53 -08:00
jpark37 cce9fb7f95 win-capture: Hide settings if Automatic is WGC 2020-02-24 19:42:46 -08:00
jp9000 d3b125ef38 obs-browser: Fix formatting 2020-02-24 04:18:07 -08:00
jp9000 faca94dcc5 obs-browser: Update browser to 2.8.0 2020-02-24 04:16:32 -08:00
Jim 4d15e76c5b Merge pull request #2208 from jpark37/screen-capture
Windows Graphics Capture support
2020-02-23 00:18:14 -08:00
Jim c97c36c8ee Merge pull request #2407 from tbodt/vt264-drops
mac-vth264: Manually mark priority bits for VideoToolbox frames
2020-02-23 00:16:06 -08:00
jp9000 572ce73115 win-capture: Add 'auto' method to window capture
Adds an "Automatic" method to the capture method property of window
capture.  This allows the ability for window capture to automatically
determine the best capture method to use.  Primarily, it prefers BitBlt
in most cases, but will use WGC when it detects the window is a browser,
microsoft office, or a UWP program.

This was implemented because the new capture method has a number of
undesired effects associated with it -- the issue of the capture border
that we can do nothing about, the fact that we can't control the capture
of the cursor, and the fact that Microsoft designed it to switch the
cursor away from hardware cursor mode when the capture is active (there
was absolutely no reason to do this because even OBS can capture the
hardware cursor with no issue).  Until we get a new version of this API
that doesn't absolutely blow, we're stuck preferring BitBlt instead.

But hey, at least people will be able to capture browser windows now.
2020-02-22 21:02:33 -08:00
jpark37 ffc48dbbab win-capture: Windows Graphics Capture support
Users will now have the option of legacy window capture via BitBlt, or
Windows Graphics Capture, which is new to Windows 10.

There are two annoyances with the new capture method though. One is that
there is a bright, yellow border added to the original window (but not
the OBS view of it). The other is that the mouse cursor is always
captured, and we won't be able to capture without cursor until a later
version of Windows 10 is released.

It should also be noted that DPI scaling is now applied, which may
result in blurrier images caused by Windows rescaling.
2020-02-22 21:02:33 -08:00
jpark37 d4ca08c4c7 win-capture: Add support for finding windows via EnumWindows
The top-level window appears to be preferred for upcoming Windows
Graphics Capture support, at least for UWP apps.
2020-02-22 21:02:33 -08:00
Richard Stanway ee4cbb1199 obs-outputs: Properly reset stream count on RTMP_Close
Every addStream call would increment this counter. After merging the
mbedTLS fixes, we no longer have extraneous RTMP_Init calls which were
masking the prescence of this bug. This caused every stream after the
first stream to have the wrong channel index, and eventually OBS would
crash due to an out of bounds write if the counter reached
RTMP_MAX_STREAMS.
2020-02-23 01:04:14 +01:00
Jim d93951e11e Merge pull request #2413 from whalebonetv/whalebone
rtmp-services: Add Whalebone.tv
2020-02-21 05:43:20 -08:00
jp9000 1f6f183a02 win-ivcam: Fix build issue with CMake 3.16
There is no 'data' dir for this plugin, so don't attempt to copy it.
2020-02-21 00:02:01 -08:00
jp9000 61fd81f7b4 image-source: Increase slideshow limit to 400MB
Increases the image slideshow size limit -- this is a temporary solution
until a newer revision of the image slideshow can be written.
2020-02-19 02:27:54 -08:00
Stanislav Izotov 8839c9da58 rtmp-services: Add Whalebone.tv 2020-02-19 10:57:06 +01:00
jp9000 11eafbda35 obs-ffmpeg: Mark FFmpeg NVENC as internal
Because we implemented the fallback for rescaling, there's no need to
show FFmpeg NVENC anymore.
2020-02-18 21:37:51 -08:00
jp9000 55d80e82e1 obs-ffmpeg: Fall back to FFmpeg nvenc if recale active 2020-02-18 21:00:30 -08:00
VodBox d2e115881d win-capture: Fix hook collisions with multiple game captures
Before this change, after a game capture source would send a signal to
init or restart a graphics hook, it would respond to any and all hook
ready signals.

With multiple game capture sources in the same scene, a source could
receive the signal intended for another source, and show the wrong
texture.

This change adds the window handle to the name for shared data with the
hook, resulting in hooks for other sources being ignored.
2020-02-18 21:20:48 +13:00
Clayton Groeneveld daf552096e decklink: Fix crash when no outputs are available 2020-02-17 18:58:26 -06:00
Theodore Dubois 5d3fbc15ae obs-vth264: Manually mark priority bits for VideoToolbox frames
Reland of 30d29618, except actually tested this time.

The VideoToolbox encoder gives I-frames and P-frames a priority of 1,
but the RTMP output code expects I-frames to have priority 3 and
P-frames to have priority 2.

30d29618 changed the priority of all frames that aren't I-frames, but
that included B-frames as well as P-frames. B-frames are given a
priority of 0 by VideoToolbox and changing that priority causes
artifacts for reasons I don't understand. So ignore the B-frames by
ignoring slice packets with priority 0.
2020-02-17 09:16:17 -08:00
Jim 46b652ad2d Revert "mac-vth264: Manually mark priority bits for frames" 2020-02-15 19:52:02 -08:00
Jim 677ac95b80 Merge pull request #2394 from cg2121/media-source-callbacks
obs-ffmpeg: Use callbacks when starting/ending
2020-02-12 10:53:54 -08:00
Jim c2c7419e5f Merge pull request #2400 from wahajdar/rtmp-services-Updating-Castr.io-ingests
rtmp-services: updating castr.io rtmp ingests
2020-02-12 10:53:31 -08:00
Jim 695ec9c959 Merge pull request #2399 from tlivegaming/master
rtmp-services: Add Madcat
2020-02-12 10:53:02 -08:00
tlivegaming 7c4056e4c1 rtmp-services: Add Madcat 2020-02-12 15:11:17 +08:00
Wahaj Dar c6b1f0fa64 rtmp-services: updating castr.io rtmp ingests 2020-02-12 12:06:34 +05:00
jake-shomer 955db2986f rtmp-services: Uncanny.gg 2020-02-11 18:09:07 -07:00
Clayton Groeneveld 0b3a1711d0 obs-ffmpeg: Use callbacks when starting/ending 2020-02-10 23:49:05 -06:00
jp9000 1b275054bc decklink: Fix formatting 2020-02-09 16:51:05 -08:00
Jim 18030527f3 Merge pull request #2389 from DDRBoxman/decklinkversion
decklink: Log decklink API version on plugin load
2020-02-09 16:33:45 -08:00
Colin Edwards 8090ebffb1 decklink: Log decklink API version on plugin load 2020-02-09 17:24:40 -06:00
Jim 3f82d05c0e Merge pull request #2370 from notr1ch/speedy-capture-updates
win-capture: Faster display / window capture updates
2020-02-05 11:53:40 -08:00
Clayton Groeneveld abcff0073c obs-ffmpeg: Add media hotkeys 2020-02-05 08:14:51 -08:00
Clayton Groeneveld 68f8206877 obs-ffmpeg: Add media control support 2020-02-05 08:14:49 -08:00