diff --git a/viewer/src/main.rs b/viewer/src/main.rs index 2a1103e..ac39c1f 100644 --- a/viewer/src/main.rs +++ b/viewer/src/main.rs @@ -362,7 +362,7 @@ fn session( }; let mut window = Window::new( - "mvp-remote viewer (Esc 退出)", + "mvp-remote v0.6-HUD (Esc 退出)", w, h, WindowOptions { @@ -471,7 +471,8 @@ fn session( } } - // 6) HUD:每秒刷新一次指标,画在右上角 + // 6) HUD:指标每秒刷新一次;每秒至少强制呈现一次(视频冻结/黑屏时 HUD 依然可见) + let mut need_present = dirty; let (hud_loss, hud_jit, hud_p95, hud_dec); if hud_last.elapsed() >= Duration::from_secs(1) { let f = stats.frames.load(Ordering::Relaxed); @@ -494,13 +495,14 @@ fn session( hud_p95 = stats.gap_p95(); hud_dec = stats.dec_fail.load(Ordering::Relaxed); hud_last = Instant::now(); + need_present = true; // HUD 面板每秒至少重绘一次 } else { hud_loss = f64::NAN; hud_jit = 0; hud_p95 = None; hud_dec = 0; } - if dirty { + if need_present { let rtt = stats.rtt.load(Ordering::Relaxed); let e2e = stats.e2e.load(Ordering::Relaxed); let e2e_ok = stats.e2e_valid.load(Ordering::Relaxed);