9878 Commits

Author SHA1 Message Date
jp9000
a73586b8b1 UI: Use STL random as fallback
For Linux distros still living in the stone ages, use the old
randomization code. Fixes CI not building. We can change it later when
we finalize good random stuff.
2021-09-17 02:59:21 -07:00
derrod
8c9bb3a84b UI: Fix AuthListener error HTTP response body 2021-09-16 15:03:28 +02:00
derrod
37ab69aa46 UI: Abort YouTube login on cancel or listener fail 2021-09-16 14:56:46 +02:00
Richard Stanway
422a206371 UI: Force minimum reconnect delay of 1 second
Setting this to zero breaks reconnecting (and OBS) entirely as various
parts of the reconnect system do not handle zero values properly, and
there are also possible race conditions with the reconnect thread. Set a
minimum of 1 second to avoid this.
2021-09-16 03:32:46 -07:00
Matt Gajownik
8265a8653f UI: Remove test YouTube QSS from Dark theme 2021-09-16 19:00:45 +10:00
jpark37
a9958b96d2 libobs-d3d11: Fix present skip comment
It's about the CPU being ahead of the GPU, not flip queue being full.

Also fix variable typo.
2021-09-15 15:09:25 -07:00
jp9000
27efd76125 UI: Add label/widget buddying to YouTube dialog
Adds missing label/widget buddying to the appropriate widgets within the
YouTube Actions dialog.

Closes obsproject/obs-studio#5284
2021-09-15 06:32:28 -07:00
Richard Stanway
4687e99563 UI: Use secure RNG for generating YouTube state parameter
mt19937 is a deterministic RNG and was not seeded, so the state
parameter was identical for all runs. Switch to using Qt's
QRandomGenerator::system() which is implemented as a CSPRNG on
all platforms we care about.
2021-09-15 06:16:29 -07:00
Richard Stanway
0a13ce851d UI: Properly verify state parameter for YouTube auth
Very low risk of anything bad here since we use a random port and the
chance of a CSRF attack is tiny, but this is a best practie to do when
using OAuth.
2021-09-15 06:16:29 -07:00
jpark37
608cd3867e libobs-d3d11: Use waitable object to avoid stalls
Skip Present if the waitable object says the swap chain isn't ready.
2021-09-15 02:52:12 -07:00
jpark37
fbe3e7e14b libobs-d3d11: Simplify DXGI factory creation
QueryInterface probably supplies all factories on OS. We'll see.
2021-09-15 02:52:12 -07:00
jpark37
01b5571c47 libobs-d3d11: Prefer ComPtr Clear() over Release() 2021-09-15 02:52:12 -07:00
jpark37
23f43f46db libobs: Support move for mismatched ComPtr 2021-09-15 02:52:12 -07:00
Warchamp7
1588357583 UI: Update Acri theme styling
Adds new styling for checked buttons when
they are pressed or hovered

Adds a hover styling for dropdown boxes
2021-09-15 19:22:48 +10:00
Warchamp7
3909c311f1 UI: Update dark theme button styling
Reorder styling so that checked buttons can still
get hover styling.

Add a distinct background color for disabled
buttons. Fixes the text being the same color
as the button when disabled.
2021-09-15 19:22:48 +10:00
Jim
7d5c11de2d
Merge pull request #5216 from derrod/yt-thumbnail-upload
UI: Add Thumbnail uploading to YouTube integration
2021-09-15 00:26:56 -07:00
derrod
7f2efbdb28 UI: Fix loading auto start/stop setting in YT dialog
The checkboxes need to be enabled for setting the checked state to
succeed.
2021-09-15 08:16:40 +02:00
derrod
c44e225143 cmake: Add Qt JPEG/GIF plugins to Windows libraries 2021-09-15 07:49:43 +02:00
derrod
39bbbb41dc UI: Add thumbnail option to YouTube broadcast setup 2021-09-15 07:49:39 +02:00
derrod
2dd8049aef UI: Add postDataSize option to GetRemoteText
In order to be able to POST binary data that may contain NULL-bytes we
must manually specify the size of the array, otherwise cURL will fall
back to `strlen()`.
2021-09-15 07:44:55 +02:00
Jim
5c9aa83e05
Merge pull request #5242 from derrod/yt-better-buttons
Adjustments to YouTube Broadcast Setup
2021-09-14 16:36:34 -07:00
tt2468
1f504c6ba4 UI: Fix used source for SetCurrentScene during undo 2021-09-13 19:17:11 +10:00
tt2468
63a570ed00 UI: Remove unused RemoveSelectedSceneItem slot
Appears to be a remnant left by the undo/redo system changes, not used
at all by any parts of the UI. This slot does not have undo/redo
system functionality, so it is not useful in its current form.
2021-09-13 01:38:23 -07:00
tt2468
529a412840 libobs: Block sceneitem create if item source is removed
There are some cases where an item may attempt to be created for a
removed source.

Previously, items created from removed sources would lead to the item
itself being saved, but the underlying source not being saved. While
this does not break OBS immediately, it means that the source along
with all associated items will disappear on OBS reload.

This prevents the item from being created in the first place, reducing
the chances of user work being lost.
2021-09-13 01:37:51 -07:00
jpark37
4614c0574e UI/updater: Remove dependency on psapi.lib 2021-09-12 14:10:36 -07:00
jpark37
40cea9ca50 win-capture: Remove dependency on psapi.lib 2021-09-12 14:10:36 -07:00
jpark37
f20a7c0540 libobs: Remove dependency on psapi.lib 2021-09-12 14:10:36 -07:00
derrod
136ff7b8a3 UI: Check selected broadcast when re-opening YT dialog 2021-09-12 19:58:01 +02:00
derrod
2535414923 UI: Change YouTube Broadcast Dialog title
Also uses cached username rather than making an API request.
2021-09-12 19:57:28 +02:00
derrod
35602e3249 UI: Add remember settings checkbox to YT broadcast setup
Co-authored-by: cg2121 <claytong1214@gmail.com>
2021-09-12 13:45:55 +02:00
derrod
ca3f244584 UI: Rework YouTube broadcast setup flow 2021-09-12 13:45:51 +02:00
Eric Lindvall
ef34a5f765 deps/media-playback: Handle discontinuities to fix video stalls
If there is a PTS discontinuity in the playback stream that causes the PTS to
reset, it is likely that new audio frames will come in while there are still
video frames waiting to be dequeued. This will cause the audio frames to be
played while the video frames wait for the PTS to get back up to where they
were before the discontinuity.
2021-09-11 22:28:53 -07:00
jp9000
b2839c3ec3 libobs: Actually fix ungroup deadlock
66c27c2ceaa65 (#4664) was mistakenly merged. It was also the incorrect
way to fix the deadlock. Because duplicate_item_data() already defers
the texture creation process, we can just add a param to
obs_scene_add_internal() which allows us to exclude the creation of the
item texture for this specific case. The texture will then automatically
be created later before it's used. There was no reason to be creating
the texture there, as it was unnecessary.

Properly fixes obsproject/obs-studio#3166
2021-09-11 22:00:08 -07:00
jp9000
551eff0c26 Revert "libobs: Avoid request graphics lock after full_lock(scene)."
This reverts commit 66c27c2ceaa653dbfde7629cc65d36bcb7e1e9c2.
2021-09-11 21:07:43 -07:00
Tommy Vercetti
aed2211dcd libobs: Restrict emmintrin.h to x86(_64) platform
There is a new toolchain called ARM64EC on MSVC which allows linking x64 objects to ARM64 objects.

It defines multiple architecture preprocessor definition including but not limited to `_M_X64`, `_M_ARM64` and `_M_ARM64EC`.

The original implementation will fail if compiling to ARM64EC.
2021-09-11 15:52:47 -07:00
Tommy Vercetti
5912074271 UI: Add -DNOMINMAX to CMake on MSVC 2021-09-11 15:50:06 -07:00
Tommy Vercetti
e1cf7c0e4b libobs: Fix near and far redefinition on MSVC 2021-09-11 15:50:06 -07:00
Tommy Vercetti
1f4c6fd154 libobs: Fix connect() redefinition on MSVC 2021-09-11 15:50:06 -07:00
Tommy Vercetti
e075ad5bca obs-outputs: Add WIN32_LEAN_AND_MEAN to avoid symbol clash 2021-09-11 15:50:06 -07:00
wangshaohui
66c27c2cea libobs: Avoid request graphics lock after full_lock(scene).
As logic in video render thread, gs lock (obs_enter_graphics) should be requested before full_lock(scene).
However in function obs_sceneitem_group_ungroup called from UI thread, the order for requesting locks are contrary.
2021-09-11 15:49:25 -07:00
Kurt Kartaltepe
b47e4858b8 libobs: Add profiler section for send_packet
This makes it a bit more clear when muxing takes longer than expected
instead of attributing the time to the do_encode.
2021-09-11 15:33:02 -07:00
jpark37
1a16185977 libobs-winrt: Require Windows 10 SDK 20348
This will prevent compiling without borderless WGC support.
2021-09-11 13:00:28 -07:00
jpark37
f9dbde51a7 cmake: Require Windows 10 SDK 20348 2021-09-11 13:00:28 -07:00
jpark37
00941ffc84 libobs-d3d11: Use ALLOW_TEARING if supported 2021-09-11 01:33:55 -07:00
jpark37
7ce2a60a1d libobs-d3d11: Use FLIP_DISCARD on Windows 11
Windows 11 support for DISCARD swap effect seems to be buggy and slow.
Use FLIP_DISCARD instead. Staying with DISCARD on Windows 10 because of
reports of flickering that hopefully won't happen on Windows 11.

We're also not using ALLOW_TEARING because it seems to break after an
OBS cycle of minimize/restore on both Windows 10 and 11. The swap chain
displays a stale image. Not sure if ALLOW_TEARING would be beneficial
even if it was working.
2021-09-10 20:19:24 -07:00
jpark37
aa342ab6fc libobs/util: Const-correct win_version_compare 2021-09-10 20:19:24 -07:00
derrod
1e98c9a0be UI: Disable reconnect for bandwidth test
Trying to reconnect would cause a hard crash of OBS rather than going to
the failed state. Therefore disable reconnects when doing bandwidth
testing.
2021-09-10 10:26:13 -07:00
derrod
85f9a8661b UI: Enable AutoConfig bandwidth test for YT integration 2021-09-10 10:26:13 -07:00
Ryan Foster
bb5820b882 UI: Fix Qt6-incompatible operator usage
Commit 60d95cb5 introduced some code that used the + operator on two
Qt::Modifier items. Using a pipe operator instead fixes the compilation
error on Qt5 and Qt6.
2021-09-10 10:23:24 -07:00
Ryan Foster
fd2aaf92b9 UI: Fix Qt6-incompatible call to QLocale::setDefault
The YouTube integration changes introduced code that does not build on
Qt6. The errors were:

 * void QLocale::setDefault(const QLocale &)': cannot convert argument 1
   from 'QString' to 'const QLocale &'

 * no suitable user-defined conversion from "QString" to "const QLocale"
   exists

This commit creates a new QLocale in place from a QString using the
`QLocale(const QString &name)` constructor, and passing that QLocale to
QLocale::setDefault.
2021-09-10 10:23:24 -07:00