Commit graph

3122 commits

Author SHA1 Message Date
tytan652 21289b2777 UI: Save protocol in non-custom services 2023-03-24 16:07:40 -04:00
tytan652 3c909558fa UI: Make simple audio codec name translatable
Also adds "(Default)" to the AAC combobox option.
2023-03-24 09:14:09 +01:00
tytan652 04a4f2b725 UI: Fix simple fallback audio codec name 2023-03-24 09:14:09 +01:00
PatTheMav fe34045d6a UI: Remove unused variables to fix errors in the CMake 3.0 rework 2023-03-23 16:48:59 -04:00
Norihiro Kamae 81117fa5cb UI: Separate translation of filename format tooltip
The tooltip string describing the filename format had many lines. It
made difficult for translators to update newly added format strings.
This commit separates the string so that each format string has each
translation.
Also construct HTML so that the column aligns.
2023-03-23 23:00:47 +11:00
tytan652 f2f00f1676 UI: Fix audio archive encoder using the stream track 2023-03-22 15:30:56 -04:00
Exeldro b11d61c89f UI: Add space for right arrow in menu 2023-03-21 16:09:27 -04:00
tytan652 d529f2c35f UI: Fix inconsistencies in FindProtocol
- Fallback to RTMP if custom server is empty.
- Check if RTMPS is supported since OBS Studio can be built without it.
2023-03-21 15:17:15 -04:00
Jim 0a9ed4569b
Merge pull request #7814 from jpark37/decklink-preview-rescale
decklink: Move preview output rescaling to GPU
2023-03-20 01:42:36 -07:00
tytan652 eef63cd188 UI: Enforce stream audio to Opus if service is FTL 2023-03-20 01:09:52 -07:00
tytan652 b2f25fb4b9 UI: Default advance record audio to AAC 2023-03-20 01:09:52 -07:00
tytan652 215426b65b UI: Use connect infos check in before stream check
Ask the service directly rather than checking the presence of a key and
a URL.
2023-03-19 18:27:44 +01:00
tytan652 5fe417bce1 UI: Add audio codec selections 2023-03-19 17:27:43 +01:00
tytan652 b15684aa17 UI: Add Opus bitrate map and per encoder bitrate list
Also refactors AAC bitrate map too.
2023-03-19 17:27:43 +01:00
tytan652 ea2858705c UI: Select streaming output based on the protocol 2023-03-19 17:16:13 +01:00
tytan652 8d6cacc35b UI: Remove hardcoded stream codec list 2023-03-19 17:08:06 +01:00
tytan652 44ca002d02 UI: Use protocol to enable network options 2023-03-19 17:08:06 +01:00
tytan652 e00e2712cf UI: Use protocol to list compatible codecs 2023-03-19 17:08:06 +01:00
tytan652 5a409347d5 UI: Refactor Qt slots in stream settings page 2023-03-19 16:49:56 +01:00
Jim 6eace37e06
Merge pull request #8229 from derrod/hashed-tables
Hashtable Adventures
2023-03-19 00:34:44 -07:00
田七不甜 c3990e882a UI: Fix Dark and System themes select list height 2023-03-18 15:56:22 -07:00
cg2121 b0fbf25e24 UI: Fix media controls shortcuts being global
The play, pause and restart shortcuts were being called as global
shortcuts, being triggered no matter what. This fixes this by calling
the shortcut actions only when the media controls widget has focus.
2023-03-18 15:51:05 -07:00
Norihiro Kamae 434bdc1768 libobs: Fix possible use-after-free of obs_scene_t
When creating a group, a newly allocated group `sub_scene` is released
just after calling `obs_scene_add_internal`.
If another thread released the scene-item, which is the sub_scene,
use-after-free might happen.
2023-03-18 15:34:47 -07:00
Norihiro Kamae 0959a22de3 UI: Fix possible use-after-free of obs_scene_t 2023-03-18 15:34:47 -07:00
Norihiro Kamae 23a0b7cacd UI: Fix possible use-after-free of obs_source_t
Also removes an implicit pair of successive obs_source_getref and
obs_source_release calls from OBSSource.
2023-03-18 15:34:47 -07:00
gxalpha 8ce4a2a154 UI: Fix macOS crash when saving general settings without Sparkle 2023-03-18 15:32:56 -07:00
gxalpha c958ffa9f4 UI: Properly update filter properties after resetting 2023-03-18 15:31:00 -07:00
tytan652 a0905d3972 obs-outputs,UI: Disable Windows-only options on non-Windows
"New Socket Loop" and "Low Latency Mode" RTMP options are only available
on Windows.

Those options should be ignored and forced-disabled on non-Windows
builds.
2023-03-18 15:29:50 -07:00
Richard Stanway e305b0f172 UI: Add old Vtuber Maker versions to DLL blocklist
This DLL is based on Unity Capture and suffers from the same deadlock
bug as many similar filters. A fixed version was released on 2023-03-14.
https://store.steampowered.com/news/app/1368950/view/3674412925835790027
2023-03-18 15:23:52 -07:00
derrod 09b6786f1a UI: Add Help menu action to show What's New dialog 2023-03-18 15:21:52 -07:00
derrod 5083c2a2e2 UI: Remove Windows 7 browser hwaccel check 2023-03-18 15:19:48 -07:00
Norihiro Kamae 3d5c4ff56e UI: Remove empty clause 2023-03-18 15:16:44 -07:00
derrod c971e0ead3 UI: Fix capitalisation of SysTrayEnabled 2023-03-18 10:47:50 +01:00
tytan652 e6873d3278 UI: Refactor integration and browser docks
Use the QAction provided by QDockWidget with new Qt connection rather
than creating a new one for each dock.

Separate extra browser docks from extra docks, the latter is meant for
plugin/integration docks.
2023-03-17 20:21:08 +11:00
tytan652 63e3e0acd0 UI: Refactor main docks toggle action
Use the QAction provided by QDockWidget with new Qt connection rather
than creating a new one for each dock.
2023-03-17 20:21:08 +11:00
cg2121 a870ae2fb9 UI: Remove platform string from title bar
This cleans up the title bar text.
2023-03-17 19:06:50 +11:00
derrod b31344d82e updater: Fix building in Debug 2023-03-12 20:50:45 +01:00
derrod 02225aa8bf UI: Reset UUIDs in duplicated collection 2023-03-12 01:11:38 +01:00
gxalpha ab04bb1f55 UI: Don't show Update section in settings when built without Sparkle 2023-03-11 15:37:28 -08:00
gxalpha aee268c944 UI: Don't show video-only async filters for synchronous sources
Expands the filter_compatible check to return false if the source isn't
async and the filter is not an audio filter, filtering out e.g. the
"Video Delay (Async)" filter from browser sources (which have audio but
don't have async video).
Amends 845e056551.
2023-03-11 15:24:07 -08:00
cg2121 b82c8ccdcf UI: Limit preview scrolling
This prevents the preview from being scrolled on forever.
2023-03-11 15:22:23 -08:00
derrod f55b251fa8 UI: Sort and pretty-print exported collections 2023-03-10 23:55:42 +01:00
gxalpha bb4e6f9e51 UI: Don't try to make OBSBasic parent of ControlsSplitButton
Passing the parent of a QLayout sets it directly as the top-level layout
(as per the QLayout docs). This is obviously not what is intended here.
Luckily it doesn't even work since the main window of course already has
a layout which would need to be explicitly removed before, but it makes
Qt yell at us for trying.
2023-03-11 09:38:46 +11:00
derrod 705173a0c3 UI: Add fragmented MP4/MOV formats 2023-03-10 17:12:36 -05:00
derrod 05b1be4f27 UI: Add MP4 to remuxable extensions 2023-03-10 17:12:36 -05:00
gxalpha 4c9ebc753c UI: Create OBSPermissions on stack
This fixes the window leaking and may improve performance.
2023-03-10 13:49:52 -05:00
Stefan Murawski 95cbd21a3b UI/installer: Add quotes around UninstallString
This follows recommended practice from NSIS documentation.

This fixes issue #7935.
2023-03-10 12:58:33 -05:00
Bartłomiej Piotrowski 853ae5ea6e UI: Set flathub::manifest
Currently, the manifest URL on Flathub Beta website points to the
deprecated manifest hosted on Flathub. The flathub::manifest key
is undocumented attribute that will update the website to use the
proper location.

This key will not affect appstream other than providing enough
information to the Flathub website.
2023-03-09 20:33:44 -03:00
gxalpha b1c96bba86 UI: Re-raise remux dialog after selecting file on macOS 2023-03-09 16:05:40 -05:00
Richard Stanway 9d4a7f01dd UI: Add DLL blocking functionality for Windows
Adds a NtMapViewOfSection hook which we can use before DLLs are loaded
to decide whether to abort the process. This is useful for blocking
known problematic DLLs that cause crashes. In addition, the PE timestamp
can be checked to block only older DLLs such as older versions of Vtuber
virtual cameras with known deadlock bugs.

A simple counter of each DLL is used for logging purposes. Since DLLs
can be blocked at any time, the output is only logged on exit of OBS.
2023-03-09 14:16:34 -05:00
derrod f3b1a1cf1f UI: Use bilinear scaling for YT thumbnail 2023-03-08 18:41:20 -05:00
derrod c99256cf21 UI: Do not set default locale 2023-03-08 18:06:51 -05:00
derrod c55fcbbb12 UI: Use binary mode for QuickReadFile
When not using binary mode (i.e. text mode) CRLF will be converted to
LF, which means that the size provided by tellg() is no longer correct,
and reading prematurely hits an EOF and sets the fail bit.
2023-03-08 22:50:49 +01:00
derrod 5dd1d00a03 UI: Add mutex to reading public key file 2023-03-08 22:50:49 +01:00
derrod 2c48e61207 UI,obs-vst: Set Qt RCC format to 1
v2 introduces last-modified timestamps that ruin reproducibility.
2023-03-07 18:13:24 -05:00
derrod 0ece23dff2 updater: Bump version 2023-03-07 15:34:27 -05:00
derrod 2790e1ab1b updater: Use native WinHTTP decompression (remove zlib) 2023-03-07 15:34:27 -05:00
derrod fc5a84ed5d updater: Use zstd for patch manifest request 2023-03-07 15:34:27 -05:00
derrod f29e1fdee4 updater: Switch to Zstandard for delta updates
zstd is faster, less resource intensive, and produces smaller
files than bsdiff + LZMA.

Overall, it's a significant improvement for our workflow.
2023-03-07 15:34:27 -05:00
derrod 787c5f67a8 updater: Add Zstandard for compressed downloads
Using zstd reduces the download size for updates by about 2/3.
2023-03-07 15:34:27 -05:00
gxalpha 78d195a5df UI: Make T-Bar unclickable
The T-Bar should only be draggable and not act on clicks.
2023-03-07 13:47:51 -05:00
shiina424 2eb10cd94e UI: Fix disabled text color in dark theme 2023-03-06 19:02:38 -03:00
cg2121 b464ba8129 UI: Set min/max zoom levels for preview
Prevents the preview from zooming in or out too far.
Min zoom: 10%
Max zoom: 1000%
2023-03-04 16:31:49 -08:00
cg2121 03a94aee41 UI: Fix wrong program scene if tbar is aborted
The program scene would be incorrect if the tbar was released
at its original position.
2023-03-04 16:31:37 -08:00
cg2121 6e22af932d UI: Fix preview disabled in studio mode
If OBS is set to minimize to system tray on startup and studio mode is
enabled, the preview would be disabled when showing OBS, if the preview
in non studio mode was disabled.
2023-03-04 16:24:22 -08:00
cg2121 290c1569a9 UI: Don't hardcode properties label colors
Makes the label have colors based on themes, instead of hard coding.
2023-03-04 16:21:01 -08:00
cg2121 a3defd4f58 UI: Fix spacing helpers when rotated and flipped
If the scene item was rotated greater than 45 degrees, and flipped
vertically or horizontally, the spacing helpers would be drawn
incorrectly. This fixes the issue by checking the scale before
the rotation, instead of after.
2023-03-04 16:18:38 -08:00
Richard Stanway bb7ca3c2c3 UI: Add mutex for writing to the log file
fstream is not thread-safe and the act of writing the string and the
newline are two separate operations which could execute concurrently in
multiple threads, resulting in lines joining together followed by two
newlines. Due to the presence of a static mutex, this also removes
inline on the function.
2023-03-04 15:34:17 -08:00
derrod 8ba646c842 updater: Check if awaited instance matches current install
Also replaces any secondary usages of GetCurrentDirectory with cached
static variable.

Co-Authored-By: Richard Stanway <r1ch@r1ch.net>
2023-03-03 21:47:56 +00:00
derrod 08733a0e1a updater: Remove 32-bit Support 2023-03-01 20:18:03 -05:00
derrod d15dce99d0 updater: Multi-threaded delta patching 2023-03-01 16:20:43 -05:00
derrod 60844505d0 UI: Replace uses of token-pasting operator 2023-03-01 20:39:53 +01:00
Norihiro Kamae 22a98c279e UI: Fix tabstops on settings dialog 2023-03-01 10:50:10 -05:00
derrod 77e4c1c305 cmake: Check if Sparkle options are non-empty 2023-02-27 13:06:26 -05:00
PatTheMav 953e0eda53 UI: Remove unused variable 2023-02-27 18:40:52 +01:00
tytan652 6734c9cbc8 UI: Stop virtual camera if active while exiting
Avoid potential memory leaks and crashes.
2023-02-25 16:06:59 -08:00
tytan652 0f560a9136 UI: Fix scene/source in virtual camera config if renamed 2023-02-25 16:06:59 -08:00
tytan652 501a3e926d UI: Refactor Virtual Camera source selector dialog 2023-02-25 16:06:59 -08:00
derrod e5690a1f65 UI: Use unordered_map for hotkey duplicate detection 2023-02-25 15:28:35 -08:00
derrod af4012e1b1 UI: Set QT_NO_SUBTRACTOPAQUESIBLINGS env var
This speeds up drawing the hotkey list *significantly* and doesn't seem
to break anything else. But it is kind of a hack.
2023-02-25 15:25:31 -08:00
derrod c3543273e4 UI: Defer creation of hotkey dupe icon until needed 2023-02-25 15:21:29 -08:00
derrod 11e5afa2b2 UI: Support platform-specific WhatsNew entries 2023-02-25 15:08:27 -08:00
tytan652 2a2d8fc1bb UI: Remove mf_aac references 2023-02-24 14:34:34 +01:00
gxalpha 5d0a1c0010 UI: Don't load global plugins in portable mode
Portable mode is meant to be separated from the rest of the system, and
as such it doesn't make sense to load globally installed plugins there.

On Windows, there currently are only two major plugins that install
themselves there. Plugins installing themselves there is good, but it
currently also means that even portable instances load them which can
make testing and debugging in a clean environment annoying.
2023-02-24 14:11:21 +01:00
gxalpha d405193aeb UI: Only set portable mode variable if supported
Previously, all the functions of portable mode wouldn't work if compiled
without it, but the log still show it as enabled if the argument was
set. This could lead to confusion.
Additionally, we don't even show the option in the help string (--help),
so it should just be a no-op.
2023-02-24 14:11:21 +01:00
Georges Basile Stavracas Neto a1a98f9cfd plugins: Drop win-ivcam
Apparently this was a prototype from Intel that never really
properly launched. Remove the plugin.
2023-02-24 14:04:29 +01:00
jpark37 463bf0dff5 libobs,UI: Add P216/P416 pixel formats
Will be useful for ProRes.
2023-02-21 18:48:44 +01:00
gxalpha 4bcd86b395 UI: Disable replay buffer checkbox when using custom FFmpeg 2023-02-20 23:46:59 +01:00
derrod 644b73eb46 UI: Add confirmation dialog for resetting properties 2023-02-20 23:46:01 +01:00
gxalpha 8d4a0b3645 UI: Use valueChanged() signal for T-Bar everywhere
The sliderMoved signal doesn't trigger when clicking on the slider, only
the valueChanged signal. According to QTBUG-72995 this is intentional,
since the documentation states that sliderDown also needs to be true for
the sliderMoved signal to be triggered. As for why sliderDown isn't true
when clicking, or why that would even be necessary for a signal that
should trigger when the slider is moved (and it very clearly moves)
remains a mystery.

Also gets rid of the wrong usage of the on_foo_bar slot declaration,
which should only be used for signals where the sender is part of a UI
file and it gets connected automatically. While it of course is possible
to connect it manually, this is against convention and can cause
confusion. In this case it was particularly wrong since even if tBar was
part of a UI file (which it isn't), the method should have been called
on_tBar_valueChanged instead of on_tbar_position_valueChanged.
2023-02-20 19:10:32 +01:00
shiina424 a44700871b UI: Fix window text when disabled in dark theme 2023-02-20 12:15:04 -05:00
derrod 2b33fb3ad2 UI: Massive improve hotkey search performance 2023-02-19 15:41:54 -08:00
jpark37 593a0f034c decklink-output-ui: Move preview rescale to GPU
Internal keyer computes with straight alpha, so use DrawAlphaDivide.
2023-02-19 11:46:20 -08:00
gxalpha 19a0afe526 UI: Don't double-delete children of deleted widgets
These widgets are all children of updateSettingsGroupBox, meaning they
get deleted when updateSettingsGroupBox gets deleted. This means that
the first two calls are unnecessary and the third one segfaults as
updateChannelLabel is gone already.
Just delete the parent widget instead.
2023-02-19 20:39:47 +01:00
bin 27981b15e9 UI: Fix compile error when obs-browser disabled 2023-02-19 20:39:23 +01:00
gxalpha e438037960 UI: Use native color dialog on macOS 2023-02-19 04:10:51 +01:00
tytan652 9e6a482c66 UI: Fix button callback in OBSPropertiesView created with an id
Before calling the button callback, two values are null-checked but when
the property is created with an id (const char*). Those values are null
which prevent the callback from being called.
2023-02-18 17:47:19 -08:00
derrod 9d71d2f7fd cmake: Remove ENABLE_SPARKLE_UPDATER option
Since public key and appcast are now options we simply rely on those to
decide whether or not to enable Sparkle.
2023-02-19 01:35:56 +01:00
derrod 12a27d8b99 UI: Add update channels (macOS) 2023-02-19 01:35:56 +01:00
derrod 0972da9e1a UI: Merge win-update and nix-update 2023-02-19 01:35:56 +01:00
tytan652 64176daaf4 UI: Force Wayland usage on Ubuntu GNOME
XDG_CURRENT_DESKTOP is set to "ubuntu:GNOME" on Ubuntu custom version of
GNOME.
2023-02-18 16:20:39 -08:00
PatTheMav 8b0843803e UI: Remove unused variables 2023-02-18 15:22:33 -08:00
gxalpha 623af15821 UI: Connect Reset button in Transform dialog with main window directly 2023-02-18 15:19:21 -08:00
cg2121 64d4ae0106 UI: Remove bitness strings
This removes the bitness strings from the title bar and about dialog.
2023-02-18 15:09:11 -08:00
derrod b44910726d UI: Defer Settings window hotkey loading 2023-02-18 15:04:23 -08:00
bin 559925ebaa UI: Check item whether selected before select
To prevent item from being selected again,
then mess up the qt internal list order.
2023-02-15 23:09:42 +01:00
gxalpha 9afc3cabca UI: Refactor / Clean up addNudge 2023-02-15 14:11:46 -05:00
Richard Stanway e9504326f9 UI: Remove unnecessary null checks 2023-02-15 13:40:13 -05:00
Richard Stanway 2ac43052f9 UI: Fix memory leak of remux window 2023-02-15 13:40:13 -05:00
Richard Stanway bff7928b50 UI: Avoid division by zero when calculating slider position
Detected by UBSan.
2023-02-15 13:40:13 -05:00
Richard Stanway 1f278bb18b UI: Set remux entry state before adding to queue
When adding to the queue, this triggers rowCountChanged which then
calls canClearFinished, reading undefined memory for state if this is
not set. The correct state is set immediately after by checkInputPath.

Detected by UBSan.
2023-02-15 13:40:13 -05:00
Richard Stanway 7c8acd48a9 UI: Improved implementation for sorting filters menu
Rather than finding the insertion point and iterating the vector for
each item, let's sort it afterwards.
2023-02-15 12:48:08 -05:00
bin 60e014e0e3 UI: Correct browse behavior in non-empty input edit line 2023-02-15 11:22:03 -05:00
gxalpha c24ec240af UI: Remove unused Qt crash reporter code
The crash reporter made with Qt was introduced in 824c7b0, but then was
quickly replaced by a native OS implementation in d42a7ce. This code has
been lying around ever since.
2023-02-13 10:34:18 -05:00
cg2121 7a838e877f UI: Fix scene item edit drag & drop bug
If an user exits the source tree edit mode, without changing the name,
the scene item would become undraggable until the scene is refreshed.
We were setting the focus to just the label, not the whole widget.
2023-02-12 02:46:12 -08:00
gxalpha 3e4bbe85c8 UI: Remove workaround for current scene being deselectable on Qt 6.4.3+
Qt 6.2 introduced an issue where SingleSelection item views would
deselect the current item if the user clicked on empty area in the
widget.
This was very confusing in the scene tree as it was now possible to
unselect the current scene. A workaround for this in OBS was added in
08e4ee6 and expanded on in dc30cf0, but being quite hacky it never was
the perfect solution.
I since dug into Qt and fixed the issue upstream in qt/qtbase@f11e5435c7
for Qt 6.4.3 and newer, so we can remove the workaround when using those
versions (with the long term goal of removing the code altogether).
2023-02-11 16:01:27 -08:00
derrod 5bdf492f8a UI: Avoid excessive config reads when drawing preview 2023-02-11 15:58:40 -08:00
Ilya Melamed 213ce75328 UI: Add check for null widgetForAction result
In some cases, `QToolbar::widgetForAction` may return `nullptr`. This
causes a crash on affected system.

To mitigate this, we check for `widgetForAction` result and skip
operating on a NULL widget.
2023-02-11 15:56:19 -08:00
derrod a0b5c1b3f5 UI: Fix properties widget being cut off until resize 2023-02-10 12:04:47 +01:00
cg2121 26725fa2d5 UI: Disable properties button in source toolbar
If a scene or group is selected, disable the properties button in the
source toolbar. This also does a refactor of the function to enable/disable
the toolbar buttons.
2023-02-04 16:02:04 -08:00
Exeldro 2d3013ccdc UI: Add obs_frontend_add_undo_redo_action 2023-02-04 15:30:07 -08:00
bin 945deec266 UI: Use input validator on resolution line edit in adv tab 2023-02-04 15:25:59 -08:00
Exeldro 46da073aa5 UI: Add obs_frontend_open_sceneitem_edit_transform() 2023-02-04 15:23:26 -08:00
Richard Stanway e9a401d898
UI: Remove unsupported Windows versions from manifest 2023-02-01 23:00:50 +01:00
gxalpha 11e9291800 UI: Set macOS appearance on theme change
Makes macOS aware that we're using either light or dark theme to adjust
native dialog colors accordingly.

Co-Authored-By: Patrick Heyer <PatTheMav@users.noreply.github.com>
2023-01-31 18:50:56 +01:00
gxalpha 2272efc91f UI: Use native combobox popup on macOS
As recommended by Qt on QTBUG-106162, this fixes QComboBox popups not
working with VoiceOver.
2023-01-31 18:50:56 +01:00
derrod cd78ecae50 updater: Deduplicate delta patch downloads 2023-01-29 02:24:55 -08:00
derrod cbe3ef7e57 Revert "UI/updater: Fix files with similar hashes clashing"
This reverts commit 7396c211be.
2023-01-29 02:24:55 -08:00
cg2121 52045316b3 UI: Hide menu items if source is only audio
Hides the following items if source is only audio:
- Transform menu
- Resize output (size of source)
- Scale filter menu
- Blending mode menus
- Projector menus
- Screenshots
- Interact
2023-01-29 00:02:40 -08:00
Norihiro Kamae cf2a9461a8 Remove OBSBasicSettings::VideoChangedRestart
The function `OBSBasicSettings::VideoChangedRestart` was never called,
hence remove it.
2023-01-28 19:03:55 -08:00
Norihiro Kamae c2f157470b UI: Remove unused macros
Also removes a translation string that was referred from the removed
macro.
2023-01-28 19:03:55 -08:00
tytan652 10880d6b21 UI: Unblock encoder comboboxes signals before change
Signals are blocked while encoder is enforced, those need to be
unblocked before setting the new encoder.
2023-01-28 15:50:41 -08:00
gxalpha b5b293fe72 UI: Re-raise properties window after picking files on macOS 2023-01-28 15:09:49 -08:00
derrod 778cf5a96a updater: Pass AppData path to elevated process 2023-01-25 12:32:41 -05:00
derrod ffd7202168 updater: Add additional status messages 2023-01-24 20:14:40 -08:00
derrod 3dcf68f8ed UI: Work around Qt dock restore crash 2023-01-24 18:43:38 -08:00
WarmUpTill 7d26721be5 frontend-tools: Fix crash on non X11 windowing systems 2023-01-24 16:43:52 -03:00
cg2121 d08ede33cd UI: Disable screenshot action if item has no video
This disables the source screenshot action in the context menu
if the source has no video.
2023-01-23 18:10:59 -03:00
derrod edcb80ae8b updater: Hash files with multiple threads 2023-01-22 23:58:56 +01:00
cg2121 610a2171a2 UI: Don't open properties dialog if item is scene
This disables opening of the properties dialog if a scene is double
clicked in the source tree.
2023-01-22 10:45:25 +11:00
tytan652 6dd99e3a9f UI: Fix implicit conversion warning on Linux with Clang 2023-01-19 13:08:46 -05:00
tytan652 77a174ddac aja,aja-output-ui: Calm deprecation warnings on Clang and GCC 2023-01-19 13:08:46 -05:00
tytan652 90c49c7af1 UI: Fix shadow-ivar warning on macOS 2023-01-19 13:08:46 -05:00
tt2468 5a68d3aaf5 UI: Remove extra encoder function calls
The audio_t and video_t objects are already applied in the parent
functions already.
2023-01-18 12:17:35 -06:00
tt2468 8f0e5a72d6 UI: Fix logging of output ID when start fails + code cleanup
Previously, an output that does not implement `info.get_output_type`
would result in these log messages saying `(null)`. This uses the actual
ID directly from the output itself instead.

Also removes two extra calls to `obs_encoder_set_video()` as they are
redundant and unnecessary.
2023-01-18 12:17:35 -06:00
tytan652 8fad36868e UI: Refactor Windows taskbar switch 2023-01-16 11:52:26 +01:00
tytan652 cf5c68b773 UI,libobs,libobs-opengl,obs-ffmpeg: Remove unneeded cast in switches
Those casts were usually used to workaround switch warnings.

Also adds default to OBS frontend event switches that had this
workaround.
2023-01-16 11:52:26 +01:00
derrod 143877c8ff updater: Fix portable OBS not being relaunched correctly 2023-01-14 15:30:58 -08:00
gxalpha 2133f47658 UI: Reintroduce spacing to YouTube dialog buttons 2023-01-13 10:50:36 -08:00
derrod 807c0c386d updater: Deduplicate Downloads 2023-01-12 11:37:26 -08:00
Translation Updater 783bd52197 Update translations from Crowdin 2023-01-08 04:10:37 +00:00
Richard Stanway 930c65e7c3 UI: Prevent negative "disk full in" calculation when no output
If the output is paused the average bitrate will be zero, resulting in
infinite time until disk is full and int overflows. Similarly, if no data
has been collected yet, the result will be NaN and undefined behavior.
2023-01-07 15:49:13 -08:00
Kurt Kartaltepe 124ebedbdb UI: Disable qt5ct when compiled with qt6
Qt is not smart enough to disable qt5 platform plugins when users
blindly ask for them, which causes users to be unable to start OBS.
Instead lets kindly disable broken platforms on their behalf.
2023-01-07 15:17:05 -08:00
Matt Gajownik 08a04d2cf0 UI: Lock volume meter sliders to LTR
Fixes #5447 where sliders would work in reverse.
2023-01-03 18:24:41 -05:00
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