Commit Graph

11651 Commits (master)

Author SHA1 Message Date
jpark37 29be9bff7a obs-ffmpeg: Don't use NVENC async mode
Fixes hang on stop presumably because header read failed from being too
early?

Our buffering scheme makes async mode moot anyway.
2022-08-29 10:01:57 -07:00
gxalpha 08e4ee6557 UI: Add workaround for scenes being unselected 2022-08-29 23:15:39 +10:00
gxalpha dbcafb62ff
mac-capture: Remove explicit call to setBackgroundColor
This was necessary since the default background color was meant to be
clear, but wasn't set properly. The bug is fixed in macOS 13 Beta 6, so
we can remove this statement.
2022-08-29 14:38:52 +02:00
jpark37 614119db21 obs-ffmpeg: Fix NVENC async usage pattern
Fix async API usage problems reported by NVIDIA.
2022-08-28 17:50:48 -07:00
cg2121 d69c749aaf UI: Fix crash with adding source
Bug introduced with adba393ca8

OBS would crash when adding a new source because the source tree item's
widget would be NULL in the sizeHint function when the list item is first
created.
2022-08-29 09:11:38 +10:00
cg2121 adba393ca8 UI: Fix source item widget color height
The background color of the source tree item widgets wouldn't be
rendered properly.
2022-08-28 09:45:00 +10:00
gxalpha a4f486517f obs-filters: Clarify that HDR Tone Mapping filter is optional 2022-08-27 16:39:53 -07:00
jpark37 37389ff243 libobs: Avoid display clear workaround if possible 2022-08-27 16:32:50 -07:00
jp9000 07df6548fd libobs: Increase texture encode buffering
Seems to solve lag encountered on the new AMF encoder. The SubmitInput
call in the AMF encoder can occasionally stall for quite a long amount
of time, but most take microseconds, so we can compensate by simply
increasing the buffering (3 to 10 textures).
2022-08-27 14:29:28 -07:00
Jim 2e5f900fe6 obs-ffmpeg: In AMF, use bframe count + 1 as DTS offset
Recommended by Mikhail. Seems to work fine. Should also fix the DTS
regression.
2022-08-27 09:39:46 -07:00
Jim 4c3e671819 obs-ffmpeg: Set max AMF consecutive bframes to 3 by default
The AMF documentation states that this value is recommended to be 3 if
the bframe picture pattern property is a non-zero value.
2022-08-27 09:32:38 -07:00
jpark37 e5a1ef91e3 obs-filters: Fix HDR tonemap filter for scRGB
JXR images work now.
2022-08-27 08:38:12 -07:00
jpark37 a9c68c4623 mac-capture: Replace false with 0
Param is uint32_t, not bool.
2022-08-27 08:37:44 -07:00
Matt Gajownik 7e065e9366 UI: Widen Edit Transform inputs to fit suffix in Yami 2022-08-27 12:21:35 +10:00
Be1erafon a709bc4a73 rtmp-services: Update Streamvi 2022-08-26 19:04:32 +02:00
PatTheMav b81ab5a32b UI: Fix small font size on macOS and fallback font
Qt uses a default font size of 13pt for QWidgets on macOS. By setting
the default font size to 10pt, text becomes too small for comfortable
use on macOS.

This PR patches the font files copied into the macOS bundle to use a
larger font-size of 12pt. It also sets the fallback font to the more
modern SF Display-based `.AppleSystemUIFont` used by default in macOS
if Open Sans is not found.
2022-08-25 18:02:22 +02:00
jp9000 896de392cd UI: Copy va_list in strprintf on non-Windows
On operating systems other than Windows, va_list has to be copied when
you pass it to a new function otherwise it becomes corrupted
2022-08-24 20:23:13 -07:00
Jim 2ca0e7cc1a
Merge pull request #7112 from GeorgesStavracas/gbsneto/more-yami-consistency
More Yami consistency and cleanups
2022-08-24 08:31:18 -07:00
Georges Basile Stavracas Neto 20892a172d UI: Force expand.svg in menu arrows
This should fix the inconsistency in macOS.
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto bf035f5b67 UI: Increase QGroupBox title padding
So that it matches the padding declared just a few lines above.
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto faefd6cb54 UI: Unify context menus
- Make context menus match list style
 - Add padding around menus, like lists
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto fd6633f74d UI: Cleanup QMenu QSS
Trivial cleanup. The same selector was declared twice in every file.
2022-08-24 05:47:04 -07:00
Georges Basile Stavracas Neto 2403dd70f4 UI: Unify all border radii
Make the border radius value of combo boxes, entries, and toolbar
buttons consistent at 4px.
2022-08-24 05:47:04 -07:00
PatTheMav 2bb0818fb4 libobs: Use system header notation for pthread.h include
Using a relative path for the pthread.h header by w32-pthreads breaks
compilation of plugins which include threading.h from libobs (as
w32-pthreads will exist at a different location relative to the
libobs header).

As w32-pthreads (and its include directory) is added to the libobs
target by CMake, the pthread.h header will be found even when using
system header notation.

Fixes https://github.com/obsproject/obs-studio/issues/7155
2022-08-24 05:40:37 -07:00
Chris 7c36cba065 obs-ffmpeg: Change AMF bitrate to kbps
Move multiplication to when its passed to the encoder, so that bitrate
is kept in kbps. Changed for both for H264 and HEVC. Other encoders
(x264 and NVENC) already display bitrate in kbps in the log,
so it makes sense to mimic this with AMF. It's difficult to tell the
exact bitrate with bps.
2022-08-24 05:34:21 -07:00
Richard Stanway ac55328e7f UI: Simplify multiview projector removal 2022-08-24 05:33:47 -07:00
Richard Stanway 5e6cbebcb9 UI: Remove allProjectors list
Seems like this wasn't used anywhere and projectors were not being
removed on destruction, resulting in a memory leak.
2022-08-24 05:33:47 -07:00
cg2121 a9ae9ca123 UI: Fix extra browsers trash icon
The trash icon in the extra browsers dock would be rendered
incorrectly with the Yami based themes.
2022-08-24 05:15:44 -07:00
Richard Stanway c64997ed80 UI: Fix crash when toggling volume control mode
The toggleControlLayoutAction (change between horizontal and vertical
display mode) deletes and re-recreates the volume controls, meaning we
were writing to freed memory. This is a kind of hacky fix but it's the
only action we need to be concerned with for now.
2022-08-24 05:14:56 -07:00
jpark37 2c7ef7d682 libobs-opengl: Fix Mac projector color space
Use sRGB instead of native display color space for correctness.
2022-08-24 05:08:26 -07:00
derrod 44eb8ffbb6 libobs: Fix Windows 10/11 Gamemode/HAGS detection
It seems that the older key still exists on Win 11 and 10 but is always
set to 0, so use the newer to start with and fall back to the old one if
necessary.

Additionally, if the key for HAGS and GameMode do not exist assume
they're on as this is the default on Win 11. On Windows 10 game mode is
also on by default in recent versions.

Also changes "10" to "10/11" just for correctness.
2022-08-24 05:08:04 -07:00
jpark37 f88300a613 libobs: Emulate clear with draw for displays
Laptops that render OBS displays on NVIDIA, and display through Intel
have been seen flickering, and we think the driver is not properly
handling swap chain buffers that have been cleared but not drawn to. To
work around this, we use a draw to simulate a render target clear. This
is not as efficient, so hopefully NVIDIA will fix this soon.
2022-08-24 05:01:08 -07:00
cg2121 0061d95483 UI: Fix color select buttons with Yami
The color select buttons would not be rendered properly with the
Yami based themes.
2022-08-24 20:42:40 +10:00
Matt Gajownik 0e7f69ee31 CI: Bump Linux CEF build to disable GTK
Fixes #7146

Normally, Qt and CEF each run their own version of GTK, often causing
conflicts. This commit introduces a build of CEF where GTK has been
disabled using `use_gtk=false` as we do not require the Chrome runtime.
This is an experiment and may end up being the safest long-term solution.

Note: This does introduce potential quirks/incompatibilities, such as
browser sources no longer being able to display alert() dialogs, and
potentially file browser dialogs not working from CEF.
This is better than the alternative. If necessary, such dialogs can be
reimplemented using Qt at a later date, and would likely provide a more
consistent user experience.
2022-08-23 19:47:41 +10:00
cg2121 ed32dcc677 UI: Force fixed font in plain text edits
Since the Yami QSS changes the default font for widgets, we need
to force the system fixed font for plain text edits.
2022-08-22 17:26:50 -07:00
jpark37 38d8a844de mac-capture: Use cleaner render patterns
Render code seems unnecessarily custom. Use normal patterns.
2022-08-22 16:38:50 -07:00
cg2121 a92c439af9 UI: Fix scripts dialog buttons
The tool buttons would be rendered incorrectly in the Yami based
themes.
2022-08-22 16:33:31 -07:00
cg2121 f7d815b79b UI: Fix disabled sliders color
The disabled sliders would be the same color as the window background.
2022-08-22 15:42:19 -07:00
jp9000 7b3ae0b03c UI: Fix fields not growing in FFmpeg output settings
Wasn't consistent with how it is with the rest of the user interface

Fixes obsproject/obs-studio#7147
2022-08-22 14:40:59 -07:00
jp9000 b4b01e2054 UI: Use bigger default size for button dock
Due to the new virtual camera button set being ridiculously large, the
main window needs a larger default dock size for the button dock.
Annoyingly.
2022-08-22 14:07:00 -07:00
jp9000 6dc8897e79 obs-ffmpeg: Fix AMF encoder lockup with older AMD cards
This goes back to a slightly older variant of the
SubmitInput/QueryOutput handling that doesn't use AMF's timeout
property. Older devices do not like it when you change the query timeout
on the fly and will lock up. So instead, wait one millisecond when the
AMF input is full, which appears to fix the issue according to testers.

Also adds a loop timeout in case it goes in an infinite loop (which it
shouldn't anymore, but still)

Big thanks to Flaeri for testing the old code, and Yukari for patiently
testing a whole bunch of builds.
2022-08-22 11:20:51 -07:00
Jim a6c2bb1294 obs-ffmpeg: Use AMD example PTS/DTS offset
All this does is it uses the same exact code AMD uses with their own
example FFmpeg muxer code. Although instead of adding to the PTS, it
subtracts from the DTS.
2022-08-22 11:15:23 -07:00
derrod d1a1a2c060 cmake: Set RELEASE_CANDIDATE/BETA based on git describe 2022-08-22 14:55:27 +02:00
Jim 9b087d15fc ffmpeg-mux: Do not output error if non-fatal error
Fixes a case where stderr can fill up and cause a freeze on Windows
2022-08-22 03:30:10 -07:00
Jim d95ebc6294 Revert "ffmpeg-mux: Disable stdout/stderr on Windows"
This reverts commit 332dd00089.
2022-08-22 03:28:38 -07:00
Jim 332dd00089 ffmpeg-mux: Disable stdout/stderr on Windows
These server no purpose unless the ENABLE_FFMPEG_MUX_DEBUG flag is
enabled, and will ultimately just cause problems.
2022-08-22 02:50:17 -07:00
Richard Stanway ef48f5b28d
UI/installer: Update references to dependencies for 28.0.0 2022-08-21 17:26:27 +02:00
gxalpha 97f76f99e5 UI: Remove separate trash icon themeID
The removeIconSmall is now also a trash icon, so we don't need a
separate (now duplicate) themeID for it anymore.
The icon itself of course needs to stay as it's still needed.
2022-08-20 16:46:02 -07:00
gxalpha 8cf46ca68c UI: Properly register VoidFunc in Meta Object System 2022-08-20 16:45:07 -07:00
jpark37 270d299258 mac-capture: Clip gamut to sRGB
Mac likes P3, but OBS only supports sRGB for SDR.
2022-08-20 16:39:37 -07:00