Trace desktop stream stalls across playback and preview UI
This commit is contained in:
1 parent
b1112981fa
commit
7ce60ca0f2
3 files changed
+100
-23
No files matched your search
@@ -47,6 +47,7 @@ extern "C" {
|
||||
#include "../transport/gui_bridge.h"
|
||||
#include <QSplitter>
|
||||
#include <QCloseEvent>
|
||||
#include <QElapsedTimer>
|
||||
#include <QApplication>
|
||||
#include <QScreen>
|
||||
#include <QClipboard>
|
||||
@@ -664,6 +665,7 @@ void MainWindow::setupBridgeCallbacks() {
|
||||
|
||||
/* Один publisher обслуживает шапку и свою плитку; окно управления не владеет сеткой и её readers. */
|
||||
void MainWindow::showStreamPublisher(quint64 group, StreamGridWindow* returnTo) {
|
||||
QElapsedTimer elapsed; elapsed.start();
|
||||
if (!m_streamPublisher) {
|
||||
m_streamPublisher = new StreamPublishEngine(this);
|
||||
connect(m_streamPublisher, &StreamPublishEngine::stateChanged, this, [this](const QString& state) {
|
||||
@@ -674,9 +676,12 @@ void MainWindow::showStreamPublisher(quint64 group, StreamGridWindow* returnTo)
|
||||
if (m_streamGrid) m_streamGrid->setLocalPreview(m_streamPublisher->group(), frame);
|
||||
});
|
||||
}
|
||||
qint64 engineUs = elapsed.nsecsElapsed() / 1000;
|
||||
if (m_streamPublishWindow) delete m_streamPublishWindow.data();
|
||||
qint64 removedUs = elapsed.nsecsElapsed() / 1000;
|
||||
m_streamPublishWindow = new StreamPublishWindow(m_streamPublisher, m_streamPublisher->active() ? m_streamPublisher->group() : group,
|
||||
this, m_db ? m_db->getUiState("stream_capture_settings") : QString());
|
||||
qint64 constructedUs = elapsed.nsecsElapsed() / 1000;
|
||||
connect(m_streamPublishWindow, &StreamPublishWindow::settingsChanged, this,
|
||||
[](const QString& settings) { postUiStateKv("stream_capture_settings", settings); });
|
||||
if (returnTo) connect(m_streamPublishWindow, &StreamPublishWindow::closed, returnTo, [returnTo] {
|
||||
@@ -688,6 +693,12 @@ void MainWindow::showStreamPublisher(quint64 group, StreamGridWindow* returnTo)
|
||||
DEBUG_INFO(DEBUG_CATEGORY_STREAM, "desktop publisher controls opened group=%llx return_to_grid=%d",
|
||||
(unsigned long long)group, returnTo != nullptr);
|
||||
m_streamPublishWindow->show(); m_streamPublishWindow->raise(); m_streamPublishWindow->activateWindow();
|
||||
qint64 shownUs = elapsed.nsecsElapsed() / 1000;
|
||||
DEBUG_DEBUG(DEBUG_CATEGORY_DEBUG,
|
||||
"desktop publisher UI group=%llx active=%d return_to_grid=%d engine_us=%lld remove_us=%lld construct_us=%lld show_us=%lld total_us=%lld",
|
||||
(unsigned long long)group, m_streamPublisher->active(), returnTo != nullptr, (long long)engineUs,
|
||||
(long long)(removedUs - engineUs), (long long)(constructedUs - removedUs),
|
||||
(long long)(shownUs - constructedUs), (long long)shownUs);
|
||||
}
|
||||
|
||||
void MainWindow::setupConnects() {
|
||||
|
||||
Reference in new issue
Block a user