7753 Commits

Author SHA1 Message Date
jp9000
039c08144a CMake: Rquire CMake 3.16
The recent graphics capture changes require CMake 3.16 or above to
function on Windows, so add a requirement check for 3.16 if on Windows.
2020-02-22 21:02:33 -08:00
jpark37
74c7375096 libobs-winrt: Add PCH
Reduces compile time from six seconds to less than a second.
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
d6d27cfab1 libobs-winrt: Add module for WinRT functionality
Currently wraps Windows Graphics Capture API.
2020-02-22 21:02:33 -08:00
jpark37
ab53f31eb5 CI: Use VS 2019 and windows-2019 VM image 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
jpark37
9cff2ae6bb libobs: Add extra reference when source is displayed
This provides a chance to clean up resources on the graphics thread in
the hide callback, which Windows Graphics Capture requires.
2020-02-22 21:02:33 -08:00
jpark37
82cdc6e8c6 libobs: Pump Win32 messages on the graphics thread
Necessary for upcoming Windows Graphics Capture support.
2020-02-22 21:02:33 -08:00
jpark37
f27f858ab3 libobs: Support device loss registration
Complex external systems using the D3D11 device may need to perform
their own device loss handling, the upcoming Windows Graphics Capture
support for example.
2020-02-22 21:02:33 -08:00
jpark37
82797eb367 libobs: Make ComPtr header self-sufficient
Don't make someone else define IUnknown.
2020-02-22 21:02:33 -08:00
Richard Stanway
862f16285f libobs: Don't strip whitespace from config values
A plugin that saves whitespace-only data would crash OBS on startup as
the whitespace stripping would send the string length negative. While
that bug is fixed in this commit, there is also no good reason that OBS
is stripping whitespace to begin with. All data going into the configs
should be well formed and some plugins legitimately wish to save
whitespace as a config option (eg for search / replace characters).
2020-02-23 04:02:42 +01:00
Clayton Groeneveld
d6e8fbf0d1 UI: Return 0 when launch cancelled or failed 2020-02-22 19:22:43 -06:00
Clayton Groeneveld
c44a0e3fe7 CI: Remove unused Linux script 2020-02-22 19:12:02 -06: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
Richard Stanway
28cdebdc9e UI: Don't set audio encoder track index in Adv Output
The audio track should always be 0 for RTMP output. The previous code
accidentally used the audio track index to set the encoder track index.
If the chosen audio track was track 2, this enabled the experimental
multi-track RTMP output code. This then caused streams to fail as if
there were network problems, as popular RTMP services like Twitch don't
understand the multi-track RTMP stream and the connection hangs.
2020-02-23 01:04:04 +01:00
Matt Gajownik
2cbe64a79a UI: Fix Import Profile in Portable Mode
QDir.mkpath seems broken with relative paths

Also adds a check for existing profiles
2020-02-23 10:57:11 +11:00
Jim
2f22139670
Merge pull request #2419 from cg2121/update-id
obs-scripting: Update text source IDs
2020-02-22 04:02:20 -08:00
Clayton Groeneveld
44bb7e690b obs-scripting: Update text source IDs 2020-02-21 22:54:34 -06:00
Jim
d93951e11e
Merge pull request #2413 from whalebonetv/whalebone
rtmp-services: Add Whalebone.tv
2020-02-21 05:43:20 -08:00
Matt Gajownik
c988f6487d UI: Allow custom browser delete button to fill the cell 2020-02-21 22:05:37 +11:00
Matt Gajownik
3f053dbd87 UI: Fix table heading visibility in Acri 2020-02-21 22:05:37 +11: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
4f6b4df17e UI: Hide encoder if marked internal
(This commit also modifies libobs)

Hides encoders that are marked as internal.  Same general functionality
as DEPRECATED but not actually deprecated, just internal-only.
2020-02-18 21:37:41 -08:00
jp9000
cce734a0aa UI: Allow rescaling for texture-based encoders 2020-02-18 21:00:57 -08:00
jp9000
55d80e82e1 obs-ffmpeg: Fall back to FFmpeg nvenc if recale active 2020-02-18 21:00:30 -08:00
jp9000
de363d3e09 libobs: Add obs_encoder_scaling_enabled()
Returns whether rescaling is enabled for an encoder.  This will be used
with texture-based encoders to determine whether to fall back to
RAM-based encoding instead.
2020-02-18 20:58:58 -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
Jim
4d0b3efc23
Merge pull request #2408 from cg2121/restart-app
UI: Restart program when audio/locale changed
2020-02-17 21:37:29 -08:00
Jim
fe092d15e5
Merge pull request #2412 from cg2121/decklink-fix
decklink: Fix crash when no outputs are available
2020-02-17 21:30:48 -08:00
Jim
262975401e
Merge pull request #2411 from cg2121/fix-locked-source
UI: Fix locked sources being transformed
2020-02-17 21:30:22 -08:00
Jim
596c8ecef7
Merge pull request #2409 from cg2121/lock-volume
UI: Add ability to lock volume
2020-02-17 21:30:01 -08:00
Clayton Groeneveld
daf552096e decklink: Fix crash when no outputs are available 2020-02-17 18:58:26 -06:00
Colin Edwards
53e01617c9
CI: Add github workflow to tag merge conflicts 2020-02-17 13:48:07 -06:00
Clayton Groeneveld
d6969d7732 UI: Fix locked sources being transformed 2020-02-17 13:22:00 -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
Clayton Groeneveld
b3601681b8 UI: Add ability to lock volume 2020-02-16 18:33:46 -06:00
Clayton Groeneveld
e0135823ce UI: Restart program when audio/locale changed 2020-02-16 16:12:00 -06:00
Jim
fd244a6896
Merge pull request #2403 from WizardCM/dock-context
UI: Use OBS dock menu instead of Qt dock context menu
2020-02-16 09:52:47 -08:00
Matt Gajownik
8a0cfc5665 UI: Use OBS dock menu instead of Qt dock context menu 2020-02-16 09:37:39 -08:00
Jim
7f373edbea
Merge pull request #1956 from VodBox/advanced-importer
UI: Add advanced scene collection importer
2020-02-16 09:32:09 -08:00
VodBox
191165c721 UI: Add advanced scene collection importer
This replaces the previous Open File dialog for importing collections
with a window for importing many collections at once, based on the remux
window, along with support for importing from OBS Classic, XSplit
Broadcaster and from Streamlabs' fork. This also translates sources
between OSes that Studio supports.
2020-02-16 17:56:06 +13:00
Jim
d13f204488
Merge pull request #2257 from Xaymar/fix-remove_by_name-corruption
libobs: Don't corrupt obs_properties in ..._remove_by_name
2020-02-15 20:03:58 -08:00
Jim
46b652ad2d
Revert "mac-vth264: Manually mark priority bits for frames" 2020-02-15 19:52:02 -08:00
Jim
da326f63f5
Merge pull request #2402 from WizardCM/mouse-hotkey-resize
UI: Allow resizing docks when hotkeys are disabled
2020-02-13 23:40:42 -08:00
Richard Stanway
42ed6ffffb UI: Fix preview not being disabled when minimized 2020-02-13 23:18:40 +01:00
Clayton Groeneveld
e0df5e8868 deps/media-playback: Fix buffering/sync issues 2020-02-13 05:14:34 -06:00
jp9000
6970cc32c2 libobs: Remove unused variable 2020-02-12 18:31:18 -08:00