Commit Graph
3538 Commits
Author SHA1 Message Date
Ruwen Hahn adcaf539c9 UI: Add Amazon IVS auto config QoL changes
This doesn't generally make the speedtest work for Amazon IVS, since
most Amazon IVS channels will be disconnected if the bitrate being
sent exceeds the upper limit for that channel.
2024-09-06 13:40:07 -04:00
Alex Luccisano ea9e033d26 UI: Enable BPM for multitrack video 2024-09-05 16:38:58 -04:00
Alex Luccisano 07d504e5c7 shared/bpm: Add BPM (Broadcast Performance Metrics)
Introduce support for delivering BPM (Broadcast
Performance Metrics) over SEI (for AVC/H.264 and
HEVC/H.265) and OBU (for AV1) unregistered messages.
Metrics being sent are the session frame counters,
per-rendition frame counters, and RFC3339-based
timestamping information to support end-to-end
latency measurement.

SEI/OBU messages are generated and sent with each IDR
frame, and the frame counters are diff-based, meaning
the counts reflect the diff between IDRs, not the running
totals.

BPM documentation is available at [1].

BPM relies on the recently introduced encoder packet timing
support and the packet callback mechanism.

BPM injection is enabled for an output by registering
the `bpm_inject()` callback via `obs_output_add_packet_callback()`
function. The callback must be unregistered using
`obs_output_remove_packet_callback()` and `bpm_destroy()`
must be used by the caller to release the BPM structures.

It is important to measure the number of frames successfully
encoded by the obs_encoder_t instances, particularly for
renditions where the encoded frame rate differs from the
canvas frame rate. The encoded_frames counter and
`obs_encoder_get_encoded_frames()` API is introduced
to measure and report this in the encoded rendition
metrics message.

[1] https://d50yg09cghihd.cloudfront.net/other/20240718-MultitrackVideoIntegrationGuide.pdf
2024-09-05 16:38:58 -04:00
tytan652 34735be094 UI: Fix Qt UIC warning in settings UI 2024-08-31 12:06:38 -04:00
gxalpha 7b0e154245 UI: Replace remaining SIGNAL/SLOT macros 2024-08-31 11:39:08 -04:00
tytan652 72428ccd97 Remove CMake legacy code path
Except submodules and legacy_check macro since the former depend on it.
2024-08-28 13:53:25 -04:00
derrod 8251005ad3 UI: Add migration for relative coordinate system 2024-08-27 23:58:51 +02:00
Exeldro 4cdbbacaff UI: Fix warning color 2024-08-27 13:58:17 -04:00
gxalpha 15e9242acb UI: Add warning to Custom FFmpeg mode 2024-08-25 20:37:46 +02:00
Norihiro Kamae 60a45d3aa3 UI: Use std::clamp instead of macro 2024-08-24 16:16:08 -07:00
gxalpha ec5f499cb3 UI: Inline macOS 13 check 2024-08-23 22:09:48 -04:00
Exeldro 200abd3af0 UI: Force UpdateEditMenu on UI Thread 2024-08-23 21:27:43 -04:00
derrod 3ebe071c7b UI: Remove compatibility with FFmpeg < 6.1 2024-08-23 13:44:04 -04:00
derrod 834c15e717 UI: Remove legacy Qt workarounds (Ubuntu 22.04) 2024-08-23 13:44:04 -04:00
derrod b0e1eced04 UI: Remove legacy nlohmann workaround (Ubuntu 22.04) 2024-08-23 13:44:04 -04:00
PatTheMav 710d99ef4d UI: Improve incremental compile times via explicit file includes
When a source file contains an explicit include with a filename
following the "moc_<actual-filename>.cpp" pattern, then CMake's
AUTOMOC generation tool will recognize the matching pair and generate
the replacement header file and add the required include directory
entries.

For all files which do contain Q_OBJECT or similar declarations but do
not have an explicit include directive, the global mocs_compilation.cpp
file will still be generated (which groups all "missing" generated
headers).

The larger this global file is, the more expensive incremental
compilation will be as this file (and all its contained generated
headers) will be re-generated regardless of whether actual changes
occurred.
2024-08-22 16:45:12 -04:00
derrod ce3d739f3a UI: Only use preset2 in simple mode for legacy/FFmpeg NVENC 2024-08-22 14:33:22 +02:00
derrod 8758ece291 UI: Remove now unused GetMonitorName for Qt < 6.4 2024-08-20 18:03:37 -04:00
EBK21 117ee9cf44 win-update: Use correct winhttp proxy type
Legacy one does not provide correct result on some setups, use new one on 10+ .
2024-08-19 13:25:33 +02:00
Warchamp7andClayton Groeneveld 81fa608cde UI: Add preview scrollbars
This adds scrollbars to the preview, so users can move around the
preview without using the spacebar + clicking.

Co-Authored-By: Clayton Groeneveld <19962531+cg2121@users.noreply.github.com>
2024-08-18 03:18:03 +02:00
cg2121 f07d2cd621 UI: Use signal vector for advanced audio dialog
Simplifies code by using a vector instead of individual signals.
2024-08-17 17:15:10 -07:00
derrod 7a90c80b36 UI: Add suffix to deprecated encoders 2024-08-18 01:20:38 +02:00
derrod 418c9b87cf UI: Fixup ResolveVariable to be less jank 2024-08-17 16:05:26 -07:00
PatTheMav b8cfacaec3 Update formatting of CMake files 2024-08-14 12:07:47 -04:00
jcm 1b25acd184 UI: Don't create default desktop audio source on macOS 13+ 2024-08-12 22:45:16 +02:00
cg2121 89554112c1 UI: Cleanup frontend event handling
This adds a function to OBSBasic to call on_event, so every
time a event is called, the api variable doesn't have to be
checked everytime.
2024-08-10 17:35:22 -07:00
cg2121 0306effc5f UI: Add pragma once to ScreenshotObj header
Makes sure header is only included once preventing code clashes.
2024-08-11 09:53:34 +10:00
derrod feba2bcbf9 UI: Use new NVENC encoder ids 2024-08-08 22:52:40 +02:00
Norihiro Kamae 84b321e95e UI: Remove unused static-inline function 2024-08-07 17:27:49 -04:00
derrod 6d20327bbc UI: Rename existing (corrupt) collection file if loading fails 2024-08-05 20:07:38 -04:00
derrod c723b3ba04 UI: Ensure collection name is set before creating default scene 2024-08-05 20:07:38 -04:00
tytan652 3b266fec22 UI,docs: Send a custom event to the dock widget when closing 2024-08-04 10:18:59 +10:00
Norihiro Kamae 58a8d79be1 UI: Remove min and max macro workaround 2024-08-03 16:57:17 -07:00
pkv 19abab097d UI: Fix leak with paint event of volume slider
This fixes a memory leak introduced in [1] where a new QColor is not
balanced by a delete.

[1] UI: Update volume meter appearance
https://github.com/obsproject/obs-studio/commit/52ae5fc4bd518c67edd8ab94121ace05d9076892

Signed-off-by: pkv <pkv@obsproject.com>
2024-08-03 16:27:17 -07:00
tytan652 5e5865b716 frontend-tools: Avoid initializing the scene switcher on Wayland
The Linux implementation of the automatic scene switcher is X11-only and
the design itself of the feature is incompatible with how Wayland works.
2024-07-29 22:26:15 -04:00
derrod e12ef51068 UI: Return std::optional from ParseThemeMeta 2024-07-29 19:52:42 -04:00
derrod f6097cacfb UI: Remove legacy migrations 2024-07-29 18:54:01 -04:00
Ryan Foster b9f63632a1 Merge pull request #10019 from derrod/remove-ftl
Remove FTL.
2024-07-29 16:41:31 -04:00
tytan652 4214050cda UI: Remove obs-ui-support
The remaining files are only used by the UI, so those are restored in
the obs-studio target
2024-07-27 07:38:36 +02:00
tytan652 f051fdd75e UI,shared: Move OBSPropertiesView to its own directory 2024-07-27 07:38:36 +02:00
tytan652 390429c838 frontend-tools: Remove unused source files in legacy path 2024-07-27 07:38:36 +02:00
tytan652 5eb10135da UI,shared: Move SliderIgnoreScroll to its own directory 2024-07-27 07:38:36 +02:00
tytan652 5e25041491 UI,shared: Move VScrollArea to its own directory 2024-07-27 07:38:36 +02:00
tytan652 f5c25c66af UI,shared: Move OBSPlainTextEdit to its own directory 2024-07-27 07:38:36 +02:00
tytan652 48f139729f UI,shared: Move Qt Wrappers to its own directory 2024-07-27 07:38:36 +02:00
tytan652 4882db4ec4 UI: Move QTToGSWindow outside of Qt wrappers 2024-07-27 07:38:36 +02:00
tytan652 f5e2f15d28 deps,shared,frontend-tools: Move obs-scripting to shared folder 2024-07-27 07:38:36 +02:00
Norihiro Kamae 2fa77c4021 UI: Fix cast of pointer type at invalid current scene setting on load 2024-07-20 16:49:21 -07:00
Translation Updater e7d6707fa7 Update translations from Crowdin 2024-07-17 09:34:12 +00:00
Warchamp7 ec5297b549 UI: Adjust sizing of Classic audio meter elements 2024-07-15 18:43:46 -03:00