Commit Graph

163 Commits

Author SHA1 Message Date
Ryan Foster
a1fbf1015f clang-format: Increase column limit from 80 to 120 2024-10-04 18:19:27 -04:00
PatTheMav
607d37b423 UI: Rewrite profile system to enable user-provided storage location
This change enables loading profiles from locations different than
OBS' own configuration directory.

It also rewrites profile management in the app to work off an in-memory
collection of profiles found on disk and does not require iterating
over directory contents for most profile interactions by the app.
2024-09-12 16:18:46 -04:00
PatTheMav
2635cf3a2a UI: Split global config into app and user config
This introduces a split of the current single ConfigFile instance for
all configuration into two separate instances.

The app config instance contains system-wide settings that mainly
concern the working of the app itself, whereas the user config instance
contains settings actually exposed to the user for the configuration.
2024-09-12 16:18:46 -04:00
derrod
ce3d739f3a UI: Only use preset2 in simple mode for legacy/FFmpeg NVENC 2024-08-22 14:33:22 +02:00
derrod
feba2bcbf9 UI: Use new NVENC encoder ids 2024-08-08 22:52:40 +02:00
Ryan Foster
b9f63632a1 Merge pull request #10019 from derrod/remove-ftl
Remove FTL.
2024-07-29 16:41:31 -04:00
tytan652
48f139729f UI,shared: Move Qt Wrappers to its own directory 2024-07-27 07:38:36 +02:00
derrod
1206870cef UI: Remove FTL support 2024-07-14 06:09:49 +02:00
Ruwen Hahn
7327663112 UI: Remove QFuture usage
`QFuture`s are broken on older Qt versions, even with the deadlock
workaround (see <https://github.com/obsproject/obs-studio/issues/10929>)
2024-07-10 16:12:53 -04:00
Ruwen Hahn
b74e7ede0e UI: Move code out of unnamed lambdas
This is in preparation of the next change, to hopefully minimize
the resulting diff
2024-07-10 16:12:53 -04:00
Alex Luccisano
5f98d34e2c UI: Fix multitrack-video audio track index
Fix a minor oversight from a recent commit. Audio
track indexing in the UI is 1-based while underlying
code uses 0-based indexing.
2024-06-20 06:44:33 +02:00
Ruwen Hahn
fb3e571ce8 UI: Use advanced mode audio track in multitrack video output 2024-06-18 14:13:42 -04:00
derrod
e223e7b5ca UI: Add config option to use MP4 for debug recording 2024-06-07 15:50:34 -04:00
Ruwen Hahn
c8950900c3 UI: Add eRTMP Multitrack Video Output 2024-06-04 20:50:46 -04:00
derrod
4503f0a056 UI: Add Hybrid MP4 to format selection 2024-05-26 23:11:48 +02:00
tytan652
78cd07bd58 UI,plugin: Refactor virtual camera enablement 2024-03-30 16:43:30 -07:00
pkv
60bd03e45e UI: Fix RTMP check in Advanced output
RTMP was not being recognized due to a case-sensitive comparison; this
changes to a case insensitive comparison to fix the issue.
Fixes a bug found in beta channel.

Signed-off-by: pkv <pkv@obsproject.com>
2024-02-06 21:36:37 -05:00
bin
b2872318a1 UI: Add "audio_names" setting to FFmpeg output settings 2024-01-26 22:28:36 -05:00
derrod
0a8e00c478 UI: Add and migrate to GPU scaling options 2024-01-20 19:28:52 -06:00
pkv
f186268507 UI: Enable audio multi-track w/ mpegts streaming
This enables audio multi-track support in UI for mpegts streams (srt,
rist ...).
The UI changes were coded though to allow re-use by other protocols.

Signed-off-by: pkv <pkv@obsproject.com>
2024-01-06 18:42:54 -06:00
Ryan Foster
c0ee1e718d UI: Fix typo in Virtual Camera logging functions
cvam -> vcam
2023-11-07 19:09:25 -05:00
Penwywern
a49b35c3de UI: Log Virtual Camera output type 2023-11-07 00:39:01 -06:00
Penwywern
1a88cdb00d UI: Fix AMF AV1 simple recording presets 2023-10-27 14:10:20 -04:00
derrod
3c28903979 UI: Log if user is ignoring service limits 2023-08-19 16:37:08 -07:00
James Hurley
488a96bc4b UI: Add IPv4 / IPv6 selection setting
This commit adds a field in Settings -> Advanced called
'IP Address Family' that allows users to select IPv4 and
IPv6, IPv4 Only, or IPv6 Only.
2023-07-24 17:10:30 -07:00
gxalpha
84f1e962a1 UI: Don't set fragmentation movflags in lossless mode 2023-07-15 16:36:35 -07:00
Lain
cececf4e55 UI: Wait for full vcam deactivation to destroy its view
A bug which was technically introduced in df446c3f6e: the author
assigned video mixes to the virtual camera and did not realize you have
to wait for full capture stop with the "deactivate" signal rather than
the "stop" signal. This situation is understandable because these
signals are likely confusing and need more documentation.

The way an output works when it stops is it has three stages:
- "stopping", which is the moment the user themselves stop the output
- "stop", when the output's implementation has stopped and returns
  success or an error code
- "deactivate", when the output inself (not the implementation) has
  fully stopped capturing encoded or raw frame data after the
  implementation has stopped. This is done in a separate thread,
  end_data_capture_thread(), for performance and data race reasons, and
  is when it's "actually fully stopped for real this time"

(Lain note: I sincerely apologize for this confusing signal design)

The author of df446c3f6e was likely confused as to why they could not
destroy the video mix in the "stop" signal without triggering a race
condition in end_data_capture_thread(), and instead decided to make a
workaround to clear the video mix set to the output before destroying
the video mix. Unsetting the video mix I'm guessing *seemed* to fix the
problem for them at the time, and destroying the video mix separately
after that automatically stops capture, so it *technically* worked
because the deactivate thread cannot be called until the
implementation's stop signal has executed. However, it was still the
incorrect way to handle the problem, because it circumvents the output's
mechanism for deactivating the frame data capture by destroying the view
instead.

The reason this was the incorrect way to handle the problem became
exposed in 7cd7ca80f8, when tytan made it so it uses the main video mix
under certain circumstances. The main view is special and cannot be
destroyed, so the mechanism to stop frame data capture that the
virtualcam was using before failed, and raw frame data capture continued
perpetually until the end of the program erroneously.

This fix solves the bug by using the "deactivate" signal rather than the
"stop" signal, thus allowing the output to fully end its data capture
and *then* destroy the video mix.

Fixes obsproject/obs-studio#9153
2023-07-06 15:37:28 -07:00
tytan652
7cd7ca80f8 UI: Use main video on the virtual camera if program
This change allows the virtual camera to really output what is in the
program view, some plugin interract with this view but their changes
does not appear on the virtual camera.
2023-05-30 16:16:07 -07:00
gxalpha
4b37692939 UI: Disallow exiting settings with no track in advanced mode 2023-05-24 12:30:27 -04:00
Norihiro Kamae
c335219582 UI: Fix missing translations
This commit fixes a typo in a translation key, adds two missing
translations, and also removes obsolete translations in the translation
files.
2023-05-20 16:27:28 -07:00
PatTheMav
d3ccf1b889 UI: Add support for error messages from the Virtual Camera system 2023-05-18 14:41:08 -04:00
derrod
14a6673e2f UI: Reset VCam when clearing scene data 2023-05-13 16:51:11 -07:00
derrod
7743ccfb03 UI: Fix replay buffer/split file extension 2023-04-05 01:14:26 +02:00
Richard Stanway
820fba2d7f UI: Remove unnecessary variables type conversions
Detected by PVS Studio.
2023-04-05 00:40:31 +02:00
derrod
5a375defa8 UI: Rework recording format handling 2023-04-04 00:54:28 +00:00
cg2121
3a610c698e UI: Remove UNUSED_PARAMETER where unnecessary
Since cpp allows removing the unused parameters from the function name,
UNUSED_PARAMETER is not needed, unless it is in an ifdef.
2023-04-01 16:54:02 -07:00
derrod
61efa3cbeb UI: Fix replay buffer with fragmented formats 2023-04-01 16:24:40 -07:00
derrod
2560187611 UI: Remux fragmented containers to regular counterparts
Also disables record-as-MKV when using fmp4.
2023-03-29 19:17:24 +00:00
pkv
5d287734a8 UI: Switch RecFormat to RecFormat2
Commit f1223ca566
(UI: Set fragmented MP4/MOV as default for beta/rc)
changed RecFormat to RecFormat2.
This conflicts with the use of RecFormat introduced in
d18b38e784
(UI: Enable multiple audio tracks in Simple Output recording).
This fixes the issue.
An unused var is also removed.

Signed-off-by: pkv <pkv@obsproject.com>
2023-03-25 23:45:47 -07:00
Ryan Foster
9b270c38e8 UI: Remove unused variable
This variable was added in d18b38e784,
but it is not used. Let's remove it.
2023-03-26 00:21:04 -04:00
pkv
d18b38e784 UI: Enable multiple audio tracks in Simple Output recording
This adds support for multiple audio tracks in Simple Output for
recordings.
This is enabled for all quality presets (including "Lossless") except
"Same as Stream".
This is also enabled for the Replay Buffer.
An exception is made for flv recording format since it only allows a
single audio track.
The recorded track (and streaming track) is then Track 1 as before.

Signed-off-by: pkv <pkv@obsproject.com>
2023-03-25 20:54:07 -04:00
derrod
f1223ca566 UI: Set fragmented MP4/MOV as default for beta/rc
Also includes a migration to a new key to ensure backwards-compatibility
of profile config.
2023-03-25 16:28:56 -07:00
PatTheMav
fe34045d6a UI: Remove unused variables to fix errors in the CMake 3.0 rework 2023-03-23 16:48:59 -04:00
tytan652
f2f00f1676 UI: Fix audio archive encoder using the stream track 2023-03-22 15:30:56 -04: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
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
derrod
705173a0c3 UI: Add fragmented MP4/MOV formats 2023-03-10 17:12:36 -05:00
tytan652
501a3e926d UI: Refactor Virtual Camera source selector dialog 2023-02-25 16:06:59 -08:00