Commit Graph

95 Commits

Author SHA1 Message Date
Lain
78cb2aa361 UI: Fix case where cef func may not be present
Due to a particular... plugin we all know and love, the new
QCefWidget::executeJavascript() function may not actually be present as
it should be. So, we have to verify that it's available, and only use it
in that case.
2023-08-05 04:35:31 -07:00
Lain
0c6fa0a2ba UI: Fix YouTubeAppDock crash
Apparently the YouTube app dock thing didn't take into consideration the
fact that the user may have the browser source available, but may not
have browser docks available (via the `cef` global). This is because
certain system configurations do not support browser widgets, such as
Wayland on Linux.

(Lain note: There's multiple things I'm unhappy about here. I'm mostly
going to blame myself for multiple reasons.)
2023-08-03 18:25:25 -07:00
Yuriy Chumak
81b588137a UI: Add "YouTube Control Panel" dock panel
New dock panel with integrated youtube studio live control room.
This commit also modifies CI files.
2023-08-02 17:49:05 -07:00
Lain
346b93c9c4 Merge pull request #8689 from gxalpha/no-more-signal-slot-macro
UI: SIGNAL and SLOT macros begone!
2023-07-29 16:32:56 -07:00
gxalpha
633b9e39f7 UI: Don't clear lastService immediately after setting it
Fixes a bug where when you clicked "Show more..." in the service
settings combobox, the currently selected service would be changed to
the first service in the list.
2023-07-22 16:19:26 -07:00
gxalpha
a3991f9db8 UI: Replace SIGNAL and SLOT macros for HookWidget methods 2023-07-21 13:19:52 +02:00
gxalpha
0513e848d9 UI: Replace SIGNAL and SLOT macros in settings 2023-07-21 13:19:52 +02:00
Kurt Kartaltepe
425be04014 UI: Disable QSV for simple mode on Linux
Linux QSV drivers have varying capabilities depending on if the
free/non-free Intel drivers are installed. This means we cannot safely
expose QSV in simple mode as users may be unable stream without changing
to advanced mode.
2023-07-14 12:19:33 -04:00
Norihiro Kamae
39d4b53f6b UI: Fix preprocessor directives for platform integrations
The macros `YOUTUBE_ENABLED`, `RESTREAM_ENABLED`, and `TWITCH_ENABLED`
are not defined when the associated features are not enabled.
When the code was originally implemented, there were definitions to set
`0` if the feature is disabled. However a later commit 349372b removes
the definition. Now, the use of `#ifdef` is better than just `#if`.
2023-07-12 11:09:36 -04:00
Colin Edwards
d31d271b43 UI: Move WHIP service to the bottom of the visible list 2023-06-15 12:38:11 -04:00
derrod
66b3a04424 UI: Assume RTMP if service has no protocol
(cherry picked from commit e26a04fa44)
2023-06-11 02:18:17 +02:00
Colin Edwards
353a4c860d UI: Don't show WHIP in stream settings if the protocol isn't registered 2023-06-10 16:50:55 -07:00
Sean DuBois
dd392188b8 UI: Enable WHIP service in UI
This provides the UI glue to enable the WHIP service introduced in the
obs-webrtc plugin.

Co-authored-by: John Bradley <jocbrad@twitch.tv>
Signed-off-by: pkv <pkv@obsproject.com>
2023-06-09 20:20:49 -05:00
gxalpha
b69ee759d2 UI: Sort encoders alphabetically 2023-06-03 13:48:47 -07:00
Richard Stanway
e0f674de86 UI: Add AMD AV1 encoder to simple output mode
Fixes https://github.com/obsproject/obs-studio/issues/8584
2023-03-30 22:04:07 -04:00
tytan652
0d9f15cf3d UI: Improve AV1 fallbacks while changing services
This makes AV1 encoders fallback to their H264 counterpart rather than
just falling back to x264 while changing services.
2023-03-29 19:16:46 +00:00
tytan652
79b7e61f0a UI: Fix issue from stream settings Qt slots refactor
5a40934 refactored slots around services but a
on_service_currentIndexChanged() was not replaced by ServiceChanged().

The latter contains the code that was in the former before the refactor.

5a409347d5
2023-03-25 17:08:05 -04:00
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
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
tytan652
5fe417bce1 UI: Add audio codec selections 2023-03-19 17:27:43 +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
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
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
Jim
00078a6a73 UI: Add QSV AV1 to simple output mode 2022-11-21 19:08:02 -08: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
gxalpha
e6b7a60638 UI: Add simple mode for Apple Hardware HEVC 2022-11-02 22:44:20 +01:00
tytan652
82c734892c UI: Avoid showing service integration page on Wayland 2022-10-23 03:17:15 -07:00
tytan652
47fcaed8d3 UI: Fix NVENC AV1 preset while resetting encoders 2022-10-09 16:26:29 -07:00
jp9000
614bf960d9 UI: Add NVENC AV1 to simple output mode 2022-10-07 14:34:39 -07:00
jp9000
48819def6d UI: Omit stream codecs the service doesn't support
This change makes it so that if you select a service, it will check to
see what codecs that service supports, and only list encoders of those
codecs.

If the service doesn't support a codec and you currently have an
unsupported codec selected in output settings, then it'll prompt you
with a dialog telling the user it will switch to a supported codec, and
if they click yes, then it'll change the codec for the user. If they
click no, then it'll switch back to the previously selected service.
2022-07-26 09:23:35 -07:00
tytan652
fc7af80f84 UI: Hide network features if a non-RTMP service is set
Reimplementation of bc80d0c and f2e6122, because they have to be
reverted by 0b9a8aa.
2022-07-23 16:29:10 -07:00
jp9000
0b9a8aa1fd Revert service json lookup refactor in UI
Certain services have custom server lits handling which I had forgotten
about, so although it would have been nice to have this refactor, we'll
have to live with relying on the plugin properties object directly for a
while.

This also reverts obsproject/obs-studio#6530 and
obsproject/obs-studio#6683 because that change depended on this
problematic refactor code.

This reverts commits:
f2e6122881,
bc80d0ca95,
050a29da1a,
22ffc04f73,
275e510aad,
2fa5ffe4df.
2022-07-18 14:52:26 -07:00
tytan652
bc80d0ca95 UI: Hide network features if a non-RTMP service is set
Only rtmp_output has those features implemented.
2022-06-25 17:11:29 -07:00
jp9000
22ffc04f73 UI: Refactor duplicated streaming page code
Moves duplicated streaming service code to its own class to make this
particular code slightly less insufferable to modify (but only slightly)
2022-04-18 12:27:29 -07:00
jp9000
2fa5ffe4df UI: Just use json directly for service lookups
This commit accomplishes three different things:

- Makes it much less difficult to communicate service settings
  between the UI and the plugin.

- Refactors some code and makes it cleaner and easier to modify to our
  needs (although there is still a lot of work to do on that front
  because of heavy code duplication issues between auto-config and the
  stream settings pane).

- Significantly reatly reduces the number of times the json file has to
  be opened and parsed.

This also kind of denotes a bit of a failure on the plugin communication
aspect. The properties system is too limited and jank for a lot of
things we would like to do at times.
2022-04-14 02:10:49 -07:00
VodBox
3d544653e8 UI: Cleanup libobs C++ type use 2021-11-26 23:23:51 +13:00
Matt Gajownik
a150fe7573 UI: Remove unused/nonexistent signal/slot connections 2021-11-26 17:28:34 +11:00
derrod
7d6b61ad8c UI: Fix Twitch bandwidth test checkbox 2021-10-02 05:42:59 +02: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
derrod
ca3f244584 UI: Rework YouTube broadcast setup flow 2021-09-12 13:45:51 +02:00
derrod
d5f3ddabd1 UI: Restore auth reset when switching services
Fixes #5236
2021-09-04 01:58:38 -07:00
jp9000
a6fdc47535 UI: Cache YouTube channel name
This prevents having to look up the YouTube channel every time the
settings window is opened.

Closes obsproject/obs-studio#5154
2021-08-24 18:44:34 -07:00
jp9000
fbbe193c59 UI: Add required links when using YouTube
These links are required by Google to be shown on any API client when
using Google/YouTube API.
2021-08-20 06:24:00 -07:00
derrod
9b57490e2c UI: Show error if Google account has no channels 2021-08-17 18:35:55 +02:00
Ryan Foster
e13e46839f UI: Query rtmp-services for stream key link URLs
Using the newly added stream key links in services.json from
rtmp-services, we can fetch the URLs from that source instead of
hardcoding them here. This allows us to remove service-specific code
from UI code and allows out-of-band updates to these URLs.
2021-08-16 09:48:14 -07:00