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.
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.
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.
Disable hotkeys when a user starts an interaction with the UI where they
are expected to type text and re-enable hotkeys when the interaction is
completed.
Since this is activated after starting the output, it assumes there is
no need to read anything from the connection as RTMP is send-only from
that point on. However with TLS, reading protocol messages is required
for proper operation, causing it to immediately fail on RTMPS
connections. This is a complex fix due to the way it interacts with
librtmp and mbedTLS so let's just disable it for now to avoid breaking
things for users.
These defs inadvertently redefinine `std::strtoll` in C++ code
that includes the header, causing lots of problems. They only
serve to provide compatability with very old MSVC versions.
As such, they can just be removed entirely.
The YouTube integration auto-start and auto-stop checkboxes are only
made visible when scheduling an event. However, they are disabled by
default so users can't change them when they're visible.
I suspect these checkboxes used to always be visible and were on an
enable/disable flip which got changed to a visibility flip.
The gs_texture_create_from_dmabuf function is a wrapper for
eglCreateImageKHR, which can set a different modifier for each plane.
The documentation should advice against that, since this should be
rejected by the driver.
While DMA-BUFs started to have one modifier per plane, this decision was
rolled back to having one modifier for the whole buffer / all planes.
While some apis like EGL were designed with a modifier per plane,
drivers are expected to reject any request using different modifiers per
plane.
The gs_texture_create_from_dmabuf function is able to create textures
from multiplanar DMA-BUF data. However, the only in-tree consumer of
this function - the PipeWire capture - does not use that.
Make PipeWire create textures from multiplanar buffers.
#5125 added icons to the source toolbar but no icon is displayed when nothing is selected.
This adds a spacer on the right side of the label that gets toggled inversely to the source icon, to maintain the same width
Sets a minimum size on the source toolbar itself to prevent shrinking the main window too small for it to be useable in some cases.
Also sets some sane limits on the toolbars with dropdown menus and the image source toolbar filepath
Allows the ability to override the default keyframe interval via
advanced output mode as long as that interval is smaller than the
recommended keyframe interval.
Fixes an issue where it was impossible to set a lower keyframe interval
than the recommended keyframe interval.