0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 13:08:50 +02:00
Commit Graph

2818 Commits

Author SHA1 Message Date
tytan652
852d53723c UI: Use stream encoder when resetting encoders
It actually use the recording encoder while restoring the stream encoder.
2023-01-03 17:34:44 -05:00
Kurt Kartaltepe
1b8a695571 UI: Restrict GNOME wayland override
Some wayland compositors exclusively use xwayland such as gamescope.
This allows us to fallback to the platform determined by Qt, which will
detect these exotic compositors and handle them correctly when not
overidden by this envvar.

Qt preserves this undesired behavior until 6.3. With ubuntu 22 on 6.2
this workaround needs to be preserved.

fixes #6386
2022-12-23 10:00:03 -03:00
Ryan Foster
436643c3b9 UI: Fix Qt AutoUic warning
Currently, Qt's User Interface Compiler (UIC) emits a warning about the
tabstop assignment for horizontalLayout_sdrPaperWhite, which is a
QLayout rather than a QWidget. Remove the tabstop assignment to fix the
warning.
2022-12-10 15:02:38 -08:00
gxalpha
53caee8ceb UI: Guard GetMonitorName behind Qt < 6.4
d27cda1 made this unnecessary on other Qt versions
2022-12-03 15:30:28 -08:00
cg2121
a18f07d49c UI: Fix slide counter with no slides
When a slideshow is created with no slides, the slide counter
shows value of "1 / 0". Now it shows "- / -".
2022-12-03 15:26:34 -08:00
derrod
9c2cccfbc7 updater: Bump to version 2.2 2022-12-03 15:03:28 -08:00
gxalpha
dab5ff813a UI: Hide "Update Channel" label on macOS 2022-11-26 11:34:09 +01:00
tytan652
bc51e15553 UI: Guard AutoBetaOptIn as Windows-only 2022-11-26 11:34:03 +01:00
derrod
4681ec732b UI: Delay timed update check until branch migration 2022-11-26 11:33:27 +01:00
Matt Gajownik
d27cda1fa2 UI: Fix monitor name for projectors on Windows
From Qt 6.4 release notes:
QScreen::name() now returns the user friendly name instead of the GDI
device name on Windows. This is consistent with other platforms and also
obeys the documentation.

--

Additionally, this scraps the visual indexing on monitors as the
numbering is not guaranteed to match any other GUI or API. A similar
change was recently made in the Display Capture source on Windows.
2022-11-24 18:16:30 +11:00
Jim
00078a6a73 UI: Add QSV AV1 to simple output mode 2022-11-21 19:08:02 -08:00
Jim
3c4f9f18c7 obs-qsv11: Simplify CQP
Uses the same QP value for B, P, and I frames to simplify the settings
2022-11-21 19:08:02 -08:00
derrod
dc7a20288f UI: Switch to beta branch when running beta/rc for the first time 2022-11-22 02:54:07 +01:00
derrod
f141b9c59b UI: Add update channels (Windows) 2022-11-22 02:54:07 +01:00
derrod
1617424466 updater: Add --branch/--portable command line arguments 2022-11-22 02:54:07 +01:00
Clayton Groeneveld
cfcad30e3e UI, image-source: Add slide counter to slideshow toolbar
This shows the current slide and total number of slides in the
slideshow toolbar.
2022-11-20 03:07:27 -05:00
cg2121
0df774cd01 UI: Disable toolbar buttons when no source is selected
When no source is selected, disable the toolbar buttons so the user
knows the buttons can't be clicked. They would just do nothing
before.
2022-11-20 00:06:17 -05:00
tt2468
e141def61b UI: Use blog for "Attempted path" log messages
These use printf for some reason. Instead of always printing them and
having them clutter the log, blog them with debug level. They don't
appear in log files anyway.
2022-11-19 18:16:05 -08:00
cg2121
14bd880822 UI: Add filters button to scenes toolbar
Makes it easier to access scene filters.
2022-11-20 11:07:22 +11:00
Jim
572407a928
Merge pull request #7809 from obsproject/amf-av1-rebased
Add Hardware AMD AV1 Encoder
2022-11-19 15:52:16 -08:00
gxalpha
aceeed3430 UI: Remove Qt taskbar overlay
This is no longer needed with the native integration.
2022-11-19 18:48:27 -05:00
jpark37
34a43aa4f1 UI: Clarify that RGB output format is BGRA 2022-11-19 15:20:03 -08:00
gxalpha
3838b088e3 UI: Add Apple Hardware Encoder to AutoConfig
Starting with macOS 13 the VT hardware encoder has all the capabilities
it needs for both streaming and recording, so we can start recommending
it in AutoConfig.
2022-11-19 17:38:22 -05:00
Roman Huts
8a831e2da5 UI: Add AMD AV1 to simple output mode 2022-11-18 18:18:08 -08:00
Ryan Foster
90f7a08237 UI: Change Simple Output NVENC default preset to P5
To avoid the user having lookahead enabled with no way to disable it,
change the Simple Output Mode NVENC Preset from P6 to P5.

Follow up to 8806738a04.
2022-11-18 20:51:40 -05:00
jpark37
803fcc4c3e win-capture,UI: Look up display by id, not index
The index is not reliable. The id persists better, so use that.

Also remove matching against the first monitor if the expected monitor
is not available. That feature seems like a good way to get doxxed by
accident.
2022-11-18 15:15:13 -05:00
pkv
fcb6df1f63 obs-ffmpeg: Direct setting of encryption & auth for SRT & RIST
Also modifies UI.

This allows the direct use of passphrase (SRT & RIST) used for
encryption, user + password (RIST) as well as streamid (SRT).
Previously, these parameters had to be set in the URL in the form:
URL?option1=value1&option2=value2.
They still can but there is also the option to set them in the stream
key and username/password fields.
SRT:
- the stream_id is set in the stream key (more info on it: [1]);
- the encryption passphrase is set in the password auth field.
RIST:
- the encryption passphrase is set in the stream key;
- the srp_username and srp_password are set in the user/password auth
fields [2].

Additionally, some error logging has been added when there's a
disconnect caused by a wrong password.
Lastly, this solves a bug when auto-reconnect is set and a wrong
passphrase is provided for srt; the output would keep trying to
reconnect. With this commit, an OBS_OUTPUT_INVALID_STREAM signal is
emitted and the stream is immediately stopped.

[1] https://github.com/Haivision/srt/blob/master/docs/features/access-control.md
[2] https://code.videolan.org/rist/librist/-/wikis/Authentication-and-the-ristsrppasswd-Utility

Signed-off-by: pkv <pkv@obsproject.com>
2022-11-17 21:56:38 -05:00
cg2121
0553ddcec0 UI: Use weak source for projectors
The projectors were holding on to a reference of a source, even
if the source was deleted.
2022-11-17 18:41:23 -05:00
cg2121
38fc2f3b1d UI: Add separator in source toolbar
It makes the source properties button more distinguishable.
2022-11-16 18:13:08 +11:00
Warchamp7
ffd7516305 UI: Remove number from multiview labels 2022-11-12 18:36:35 -05:00
PatTheMav
4ff789e24c
UI: Fix snprintf calls with literals as buffer sizes 2022-11-11 19:51:28 +01:00
PatTheMav
c257c29084
UI: Replace invocations of sprintf with snprintf
Fixes deprecation warnings in Xcode 14/clang on macOS and reduces
chance of buffer overflows.
2022-11-11 19:51:27 +01:00
gxalpha
03612ab873 UI: Fix QStyle memory leak 2022-11-09 23:07:53 -08:00
jpark37
4a108a6935 decklink-output-ui: Pipeline GPU data for preview
Mapping a GPU resource for CPU read immediately after GPU write creates
a large stall on the graphics thread. Use a small circular buffer, and
read the oldest frame instead.
2022-11-09 18:49:38 -08:00
Tommy Vercetti
b838636f58 UI: Remove Rosetta detection log
Will be moved to libobs
2022-11-09 03:03:26 -08:00
gxalpha
dc024a8643 UI: Use on_foo_bar properly for docks context menu 2022-11-08 20:49:56 -08:00
gxalpha
1b75940f80 UI: Replace manual usage of on_foo_bar for show/hide transition 2022-11-08 20:49:56 -08:00
Richard Stanway
7e0ade0df0 UI: Remove support for toggling Aero
We no longer support Windows 7 and Aero (DWM composition) is
permanently enabled for all newer versions, so this code is obsolete.
2022-11-08 20:44:47 -08:00
derrod
93456dfde2 UI: Set Replay Buffer Memory limit dynamically 2022-11-08 05:38:37 -08:00
Richard Stanway
c9c20008da UI: Fix always on top not being saved on exit
By the time we reach this part of the code it's too late to be checking
the window flags as the window has already been closed.
2022-11-05 11:06:39 -07:00
gxalpha
e6b7a60638 UI: Add simple mode for Apple Hardware HEVC 2022-11-02 22:44:20 +01:00
PatTheMav
b8681356e1 UI: Add detection of ProRes encoder for auto muxing
Switches container format for automatic muxing to MOV when ProRes-type
encoder is used.
2022-11-02 22:44:20 +01:00
PatTheMav
59a126dcf4 UI: Print container warnings for ProRes encoder and disable autoremux 2022-11-02 22:44:20 +01:00
Ryan Foster
1bd43220d5 UI: Migrate Simple Output NVENC preset 2022-10-31 22:51:24 -07:00
Ryan Foster
c6fbeaaf6d UI: Refactor NVENC preset migration
Refactor the NVENC preset migration code to avoid having to maintain
more copies of the preset mappings.
2022-10-31 22:51:24 -07:00
Ryan Foster
0ddba5d644 obs-ffmpeg: Split NVENC preset migrations by codec
This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
a36427c0ab UI: Add NVENC preset migration for lossless 2022-10-31 17:02:51 -04:00
Ryan Foster
891e3b0f49 obs-ffmpeg: Align NVENC preset migrations to NVIDIA guidelines
Bring our NVENC preset migrations closer in line with NVIDIA guidelines.

https://docs.nvidia.com/video-technologies/video-codec-sdk/nvenc-preset-migration-guide/

This commit also modifies UI.
2022-10-31 17:02:51 -04:00
Ryan Foster
254dc4081c obs-ffmpeg: Add NVENC preset mapping for old Default preset
The old NVENC preset "Default", labeled in OBS as "Performance", maps to
the new P3 preset when not using multipass. Since we previously only
enabled multipass/two-pass on "Max Quality", we can map this to P3 in
all cases.

This commit also modifies UI.
2022-10-31 17:02:51 -04:00
cg2121
a1fb49ccd6 UI: Change adv audio background color
The color of the disabled sliders would be the same as the background
in the advanced audio dialog.
2022-10-31 17:38:55 -03:00
Jim
1fc6c50b62 UI/obs-frontend-api: Return allocated strings for new funcs
8dda8d3500 added a few functions to get the last
recording/replay/screenshot path, but it should return allocations
because it's possible for the data to be modified at a later point.
2022-10-30 20:35:36 -07:00
cg2121
8dda8d3500 obs-frontend-api: Add functions to get last saved files
Adds functions to the frontend api to get the last recording,
screenshot and replay buffer saved.
2022-10-30 19:53:11 -07:00
Translation Updater
f065f20ce1 Update translations from Crowdin 2022-10-25 22:32:14 +00:00
gxalpha
6f50aac941
UI: Use correct key for "Always on Top" with projectors 2022-10-24 20:47:47 +02:00
derrod
1eedf4b50d UI: Fix placeholder element not being deleted 2022-10-23 14:35:30 +02:00
tytan652
82c734892c UI: Avoid showing service integration page on Wayland 2022-10-23 03:17:15 -07:00
cg2121
42ecdef938 obs-frontend-api: Add screenshot event
This adds a frontend event for when a screenshot is taken.
2022-10-23 11:06:30 +11:00
gxalpha
45ddd8c5ae UI: Set preset2 instead preset for simple mode NVENC 2022-10-22 16:48:53 -07:00
derrod
e91f1f4003 UI: Hide --portable from help text if disallowed 2022-10-22 16:35:05 -07:00
derrod
602ad99581 UI: Hide donation CTA when running via Steam 2022-10-22 16:23:50 -07:00
derrod
e8dc7d6b07 UI: Add --steam flag 2022-10-22 16:23:50 -07:00
jp9000
70c5f6c24a UI: Change "hq" to use P5 when upgrading NVENC 2022-10-19 17:51:07 -07:00
tytan652
15689fd4bd UI: Fix stats widget appearance on Yami themes
- QSS changes fix background color on the stats dialog.
- Making OBSBasicStats derive from QFrame fixes the background color
and round bottom corners on the stats dock.
2022-10-19 15:02:25 -04:00
tytan652
0a12d6728c UI: Fix stats widget status font size 2022-10-19 15:02:25 -04:00
tytan652
9bd34fe0cc UI: Fix theme if apply and cancel in settings
Cancel after apply in settings will set the old theme.
2022-10-19 15:01:37 -04:00
gxalpha
4d4a888f8e UI: Use correct title for failed replay buffer start 2022-10-15 16:35:20 -07:00
cg2121
3c7b1c8297 obs-frontend-api: Add theme functions
This adds a frontend function to check if a theme is dark and also
adds an event for when the theme is changed.
2022-10-15 16:21:34 -07:00
Richard Stanway
1d044db4f6 UI: Check return value of ConvertResText before accessing results 2022-10-15 16:17:46 -07:00
Richard Stanway
cba81638b5 UI: Fix potential memory leak when parsing OBSThemeMeta 2022-10-15 16:17:46 -07:00
Richard Stanway
f021da2afa UI: Copy result of getenv before use
Another call to getenv, as well as a call to the POSIX functions
setenv(), unsetenv(), and putenv() may invalidate the pointer
returned by a previous call or modify the string obtained from a
previous call.

https://en.cppreference.com/w/c/program/getenv
2022-10-15 16:17:46 -07:00
Richard Stanway
daee83373c UI: Remove unused assignments 2022-10-15 16:17:46 -07:00
PatTheMav
e2db9b7f70 UI: Fix possible crash due to UI property access from graphics thread
Selection state can change by main thread while UI thread (which
calls DrawSpacingHelpers) tries to evaluate the amount of selected
items. Get amount of selected items by enumerating over the scene data
instead (which stays within the graphics thread).
2022-10-15 16:06:50 -07:00
Richard Stanway
e93ad13529
UI: Don't offer current resolution in auto config if < 240p
Fixes #3612.
2022-10-13 23:13:27 +02:00
Ryan Foster
b2ff22a587 UI: Swap mq and hq NVENC Preset mappings
The old preset "mq" was "Max Quality", which used the old HQ preset with
two-pass enabled. The old preset "hq" was "Quality", which used the old
HQ preset without two-pass. Of the two, "mq" would have been considered
"slower" or "higher quality" than "hq", so let's swap these entries.
2022-10-12 21:21:03 -07:00
Chip Bradford
5054e5739a UI: Use transform to fit vcam source to canvas 2022-10-11 15:38:30 -07:00
Chip Bradford
2af28d62e9 Revert "UI: Remove individual sources (for now) from vcam config"
This reverts commit 7c8995c20f.
2022-10-11 15:38:30 -07:00
gxalpha
767d6dafd0 UI: Move "Always On Top" into View menu 2022-10-09 16:53:54 -07:00
gxalpha
e4a9c7da9c UI: Add multiview menus to UI file 2022-10-09 16:53:54 -07:00
tytan652
47fcaed8d3 UI: Fix NVENC AV1 preset while resetting encoders 2022-10-09 16:26:29 -07:00
PatTheMav
8f362fe508 UI: Clamp float values possibly representing infinity to integer size
Casting a floating point type to an integer type has undefined behaviour
if the value does not fit into the destination type.

As the volume meter is initialized with floats values representing +inf
(as makes sense for a dB meter), values should be explicitly clamped
to integer boundaries.
2022-10-09 16:20:03 -07:00
jp9000
614bf960d9 UI: Add NVENC AV1 to simple output mode 2022-10-07 14:34:39 -07:00
cg2121
193d48f5d9 UI: Fix alignment of volume sliders
With the Yami themes, the volume sliders wouldn't
be aligned in the center of the layout.
2022-10-02 10:31:26 +11:00
Norihiro Kamae
d69fbccae2 UI: Fix tabstop on settings dialog 2022-10-01 16:24:32 -07:00
Norihiro Kamae
9875cde6c4 UI: Remove unnecessary styles 2022-10-01 16:18:26 -07:00
PatTheMav
8a4cf4b739 UI: Fix AutoRemux not working when FFmpeg output configured
When the Advanced Output configuration is set to use custom FFmpeg
output, automatic remuxing is disabled. Unfortunately this check will
also take place even if Simple Output is used (as the value is set in
the configuration data, but is not "active").

This check ensures that the check for custom FFmpeg output is only
applied when Advanced Output is enabled.
2022-10-01 07:07:32 -07:00
gxalpha
dc30cf0843 UI: Don't reselect SceneTree items if tree is clearing
In the scene tree, we currently prevent deselecting items by
automatically reselecting a new one to workaround a regression in Qt 6.2
that would let users unselect items even in SingleSelection QItemViews.
When clearing however, we explicitly want to unselect the currently
selected item, so we should avoid reselecting it in the SceneTree.
2022-09-30 05:41:35 -07:00
derrod
cc2ecbe89c UI: Remove executable bit from public key file 2022-09-30 01:57:24 +02:00
cg2121
048b6524e3 UI: Fix color of popout icon
In the light theme, the dock popout icon was the wrong color,
basically making it invisible.
2022-09-25 09:29:32 +10:00
cg2121
3d1f4fc757 UI: Fix dock titlebar icons not loading
The icons had the wrong name in the qss files. The docks were missing
the icons on at least Linux. I have no idea why the dock icons still
worked on Windows though.
2022-09-25 09:22:20 +10:00
jpark37
a34fae0327 libobs,UI: Swap red/blue render/output channels
Don't need to unswizzle channels for DeckLink output in the future.
2022-09-24 16:06:34 -07:00
Matt Gajownik
493270e022 frontend-tools: Display dialog when changing Python version
Runtime switching of Python version is not supported.
2022-09-23 12:08:11 +10:00
Matt Gajownik
1b2fc73021 frontend-tools: Display Python version in UI 2022-09-23 12:08:11 +10:00
jp9000
d7c7180a8c obs-ffmpeg: Update NVENC to new presets
(This commit also modifies the UI)
2022-09-22 02:42:32 -07:00
PatTheMav
5a16239ed6 UI: Fix crash when removing filter after changing a value
Deleting a filter will trigger a visibility change, which will also
trigger a focus change if the focus has not been on the list itself
(e.g. after interacting with the property view).

When an async filter list is available in the view, it will be the first
candidate to receive focus. If this list is empty, we hide the property
view by default and set the view to a `nullptr`.

When the call for the visibility change returns, we need to check for
this possibility, as another event might have hidden (and deleted) the
view already.
2022-09-21 14:32:09 -04:00
shiina424
5eaf95a2b9 UI: Fix Light theme Studio Mode labels and T-bar 2022-09-21 13:49:29 -04:00
PatTheMav
1b57419670 UI: Update volume controls decay rate on profile switch
Without this change the decay rate would only be updated when an audio
source is added or when the volume meter itself is changed (e.g. from
horizontal to vertical layout).
2022-09-20 20:32:33 -04:00
cg2121
ffbcbaece8 UI: Refine YouTube dialog
- Make the settings a scroll area. This makes it work on smaller screens and
if more items are added in the future, the dialog doesn't get bigger.

- Made the additional settings label bold to distinguish better.
Also removed the colon, as I felt it wasn't needed because it is
now bold.

- Made the margins consistent between the settings and events pages

- Made the scrollbar show only when needed in the events page

- Moved the remember settings checkbox to the top of the settings because
it just seems better to be there.
2022-09-18 02:10:38 +02:00
PatTheMav
43dc65beec UI: Fix source name edit textbox not accepting input on enter
The Enter key is connected to the `Edit` function and is handled by
Qt with the highest priority in its key event handler. Alas the boolean
return value is not propagated to the shortcut handling system, so
the key event will always be consumed and as such the user will be stuck
in editing state.

To fix this, `Edit` needs to behave like a toggle, saving the current
state of the input at a repeat press of Enter while in editing state.
2022-09-17 16:27:25 -07:00
Richard Stanway
21c711d46b UI: Ignore left-click on non-multiview projectors
Fixes a crash that could occur after having both multiview and
non-multiview projectors active.
2022-09-17 16:19:24 -07:00
PatTheMav
c01d6bf4f7 UI: Fix hotkey settings screen not accepting all input on macOS
By default Qt will hand off key events to platform-native input methods
on macOS because the OS or additional software can intercept key input
and transform it (e.g. the international variations popping up when
holding down the key for certain letters).

This functionality can lead to certain key combinations being ignored
because they don't call the delegate methods implemented by Qt to
handle the input after it's been interpreted by the Input Method.

Disabling Input Methods for hotkey input fields fixes this issue, as the
native input methods are bypassed entirely and the key events are
handled by the widget and its keyboard events directly.
2022-09-17 16:10:30 -07:00