[feat] add video latency to network statistics

This commit is contained in:
dijunkun
2026-09-26 00:39:05 +08:00
parent 704938a157
commit 7ac8163931
17 changed files with 246 additions and 50 deletions
+26 -1
View File
@@ -56,6 +56,7 @@ export global StreamStrings {
in-out property <string> stats-out: "Out";
in-out property <string> stats-loss-rate: "Loss Rate";
in-out property <string> stats-resolution: "Res";
in-out property <string> stats-video-latency: "Video delay";
in-out property <string> stats-connection-mode: "Mode";
in-out property <string> stats-encryption: "Encryption";
in-out property <string> stats-encryption-enabled: "Enabled";
@@ -218,6 +219,7 @@ export component StreamWindow inherits Window {
in property <[NetworkStatsRow]> stats-rows;
in property <string> stats-fps: "0";
in property <string> stats-resolution: "";
in property <string> stats-video-latency: "—";
in property <string> stats-connection-mode: "";
in property <bool> stats-encryption-enabled: false;
in property <bool> file-transfer-visible: false;
@@ -253,7 +255,7 @@ export component StreamWindow inherits Window {
private property <length> stats-row-height: 18px;
private property <length> stats-header-height: 18px;
private property <length> stats-content-height:
root.stats-header-height + root.stats-rows.length * root.stats-row-height + 44px;
root.stats-header-height + root.stats-rows.length * root.stats-row-height + 65px;
private property <bool> display-menu-open: false;
private property <bool> display-menu-animation-enabled: false;
private property <float> display-menu-progress: 0.0;
@@ -1026,6 +1028,29 @@ export component StreamWindow inherits Window {
}
}
HorizontalLayout {
x: 6px;
y: root.stats-header-height + root.stats-rows.length * stats-table.row-height + 44px;
width: parent.width - 12px;
height: 21px;
spacing: 6px;
Text {
text: StreamStrings.stats-video-latency;
color: #667085;
font-size: ImGuiFontStyle.small;
vertical-alignment: center;
}
Text {
text: root.stats-video-latency;
color: #253247;
font-size: ImGuiFontStyle.body;
font-weight: 600;
vertical-alignment: center;
horizontal-stretch: 1;
overflow: elide;
}
}
for metric[index] in [
{ label: "FPS", value: root.stats-fps },
{ label: StreamStrings.stats-resolution, value: root.stats-resolution },
@@ -175,6 +175,7 @@ inline int ApplyStreamWindowStrings(
strings.set_stats_out(Text(localization::out[language]));
strings.set_stats_loss_rate(Text(localization::loss_rate[language]));
strings.set_stats_resolution(Text(localization::resolution[language]));
strings.set_stats_video_latency(Text(localization::video_latency[language]));
strings.set_stats_connection_mode(
Text(localization::connection_mode[language]));
strings.set_stats_encryption(