Commit Graph

9913 Commits (da04907927bab03c158176717dfef6f3fed5cbdd)

Author SHA1 Message Date
jp9000 da04907927 Revert "UI: Disable hotkeys when a user is expected to type text"
This reverts commit f832d14220.

Reverting this until we do more investigation. Currently, any text
that can be typed in a dialog requires the dialog to re-enable hotkeys
on destruction, which is frustrating. There has to be a better way.
2021-10-03 07:52:44 -07:00
jp9000 1df2789978 libobs: Don't return/set 0 mixers for non-audio sources
Fixes a bug where if an audio source's implementation disappears (i.e.
a plugin vanishes or is removed), it would turn all mixing channels off,
effectively muting the source
2021-10-02 10:16:24 -07:00
Norihiro Kamae 669a615983 UI: Fix tab stop order for Draw safe areas
A tabstop definition was missing on the commit afd58a78e.
2021-10-02 06:00:23 -07:00
derrod a18178f631 UI: Do not disable AutoConf bandwidth test for YouTube
Also code-cleanup
2021-10-02 05:55:53 -07:00
jpark37 4e6765a01b libobs: Remove DrawSrgbDecompressPremultiplied
Technique is no longer referenced, and doesn't seem useful.
2021-10-02 05:53:27 -07:00
derrod 7d6b61ad8c UI: Fix Twitch bandwidth test checkbox 2021-10-02 05:42:59 +02:00
Jim 4fc9cfc9a2
Merge pull request #5359 from norihiro/test-darray-type
Test darray type during CI
2021-10-01 15:17:13 -07:00
Richard Stanway 4395005a24 UI: Remove thread from YouTube auto config
This was causing crashes on auto config dialog creation, as Qt GUI
objects can only be safely accessed from the main thread. Fixes #5364.
2021-10-01 13:57:48 -07:00
jpark37 cadd83f786 obs-browser: Filter textures in linear space 2021-10-01 10:00:09 -07:00
Warchamp7 1d040a8c66 UI: Adjust minimum size of source toolbars smaller
#5187 added a minimum size enforcement on the source toolbar to ensure
it remains functional at lower window sizes.

That minimum size was set to 800 pixels, which causes issues for
users on 1366x768 monitors in a vertical orientation.

This is still a rather common resolution, so this reduces the minimum
size below 768
2021-10-01 09:37:54 -07:00
Norihiro Kamae 93ee7c4775 libobs/util: Add type test in darray macros for GCC
Previously darray macros did not test the types of arguments so that
developers cannot notice even if a wrong type of a variable is passed.
This commit add a type test that relys on GCC's extension. Since OBS
Studio is built with GCC for Ubuntu, testing only under GCC is
sufficient to catch future bugs.
2021-10-01 13:00:00 +09:00
Norihiro Kamae ef5e04a621 libobs/util: Add a cast for da_push_back_array argument 2021-10-01 12:59:35 +09:00
Norihiro Kamae 5e75efd14c libobs: Fix const qualifier mismatch on DARRAY 2021-10-01 12:59:27 +09:00
Norihiro Kamae d65ca911dd libobs: Add casts to da_push_back_array arguments 2021-10-01 12:58:14 +09:00
jpark37 10cf411f99 libobs: DrawSrgbDecompress for default_rect.effect
Necessary for upcoming fix to browser source alpha.
2021-09-30 17:35:06 -07:00
jpark37 0c0ff1195f libobs: Simplify util_mul_div64 for x64 on Windows
Use intrinsics to perform 128-bit math directly.
2021-09-29 02:22:01 -07:00
jp9000 9deb8fe292 win-capture: Update graphics hook version to 1.7.1
Makes sure that OBS updates its graphics hook version
2021-09-28 10:08:55 -07:00
jp9000 516cd32758 libobs: Update version to 27.1.1
Nothing actually changed, it was just a deploy script issue on Windows.
Bumping the version so that people who updated will get a new update.
2021-09-28 08:43:22 -07:00
derrod 698ed54870 UI: Add missing Auth::Load() when duplicating/creating profile 2021-09-27 18:42:01 +02:00
Kurt Kartaltepe 3e2ad118b9 linux-capture: Fail when libdrm missing
I forgot to extend the FATAL_ERROR messages to include libdrm.
2021-09-25 15:27:51 -07:00
Matt Gajownik 79f98f8fb8 obs-browser: Update translations from Crowdin 2021-09-25 17:31:24 +10:00
Matt Gajownik cc2831e8b3 obs-browser: Update version to 2.16.2
Translate common SSL error codes on browser panel load failure
2021-09-25 09:27:41 +10:00
Vainock 11a690b038 Update translations from Crowdin 2021-09-24 09:42:08 -07:00
jp9000 e6effff82f libobs: Update version to 27.1.0 2021-09-24 07:07:05 -07:00
Kurt Kartaltepe 7384f6f061
linux-capture: Add libdrm dependency check (#5326)
We require libdrm for its header so add the cmake module and header path
to the build. We don't need to link libdrm though so we dont add it to
libraries.
2021-09-23 13:05:53 -05:00
jp9000 2be0d6b8ef Revert "UI: Update volume controls by callback"
This reverts commit 0a3cd8fbf6.

Causes volume levels to freeze if audio stops.
2021-09-23 09:27:30 -07:00
Georges Basile Stavracas Neto 62a2513369 libobs: Make portal inhibitor asynchronous
Currently, libobs contains two inhibitors: the portal-based one, and the
regular one based on each desktop environment's session manager. The portal
inhibitor takes precedence over the session manager one, when available.

Like the session manager inhibitor, the portal inhibitor performs all D-Bus
calls synchronously in the calling thread, which can lead to stalls. This is
not a good practice.

Make the portal inhibitor asynchronous, by using g_dbus_connection_call()
instead of g_dbus_connection_call_sync(). If an uninhibit call is made
before the previous inhibit call finishes, cancel the inhibit call instead.

Fixes obsproject/obs-studio#5314
2021-09-23 07:35:47 -07:00
Ryan Foster 10810d9730 UI: Prevent Restream OAuth disconnection
Fix the service check for services where its name in the UI does not
match its Auth::Def service string.

In Restream's case, the service name in the UI and rtmp-services is
"Restream.io" while the service name in its Auth::Def is "Restream".
This mismatch causes the `service_check` bool to be false, whereas the
previous condition (`!!main->auth && service.find(main->auth->service())
!= std::string::npos`) would have evaluated to true.

This was broken in commit e6f1daab8c.

Fixes GitHub Issue 5290.
2021-09-22 22:56:41 +02:00
columbarius 7bc06e0db6 linux-capture: Omit implicit modifier token when creating texture
DRM_FORMAT_MOD_INVALID is a token for implicit modifier. When importing
a DMA-BUF with implicit modifier we should call
gs_texture_create_from_dmabuf() without modifier.
2021-09-21 12:57:49 -03:00
columbarius e071b5e300 libobs-opengl: Load EGL via Glad on Wayland platform
We need to have EGL extensions loaded when dealing with DMA-BUFs.

EGL_EXT_image_dma_buf_import: This extension is required to import
DMA-BUFs with the modifier-less path. It is limited to buffers with 3
planes. [1]

EGL_EXT_image_dma_buf_import_modifiers: This extension is required to
import DMA-BUFs with an explicit modifier. It raises the limit of buffer
planes to 4, which is the maximum planecount for DMA-BUFs. [2]

[1] https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt
[2] https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt
2021-09-21 12:57:49 -03:00
Ben Alman f48259f2b3 docs: Add transition duration changed event 2021-09-20 18:54:11 -07:00
Thomas Schnitzler 22f5e68121 win-dshow: Don't buffer Elgato Facecam device by default
Buffering should be disabled for Elgato Facecam in "Auto-detect" mode to
prevent latency changes over time
2021-09-20 18:42:36 -07:00
jp9000 c459e8954c UI: Fix enter/esc when hotkeys are disabled in focus
Fixes an issue where enter/escape/return would not work in the program
if hotkeys were disabled while in focus. No other known keys were
affected by this filter issue.
2021-09-20 08:19:13 -07:00
Georges Basile Stavracas Neto ef0540c0d7 linux-capture: Lookup session handle without typechecks
g_variant_lookup() obligatorily receives the type of the variant to
lookup. This function is used when retrieving the session handle
from the portal's response, and the variant type passed is "s" (a
string).

However, xdg-desktop-portal had a bug: the documentation explicitly
mentions that the session handle is an object path (of variant type
"o"), but it passed a string (of variant type "s"). This mismatch
was fixed in the xdg-desktop-portal release 1.10 [1], but that broke
the PipeWire capture code, which was passing specifically the "s"
value to the variant lookup.

Fix this by not checking the variant type at all. Object paths ("o")
are simply strings with a few extra checks, and we don't actually need
to perform these checks.

This change probably broke other apps, and that makes me extremely sad :(

[1] https://github.com/flatpak/xdg-desktop-portal/pull/609
2021-09-17 08:36:56 -07:00
jpark37 cf518f4944 CI: Fix double zip by uploading build folders 2021-09-17 08:06:44 -07:00
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