feat(hud): B1 基线指标——抖动/帧间隔p95/丢包率/解码失败计数 + 测试脚本
- common: Pong 扩展 lost/sent(agent 发送方向 QUIC 计数,经交叉评审项) - agent: Pong 附带 conn.stats().path 丢包统计 - viewer: Stats 加 GapRing(64)/jitter EMA/dec_fail;HUD 新增 JIT/P95/LOSS/DECFAIL 四行,% 字形 - tools/bench.md: 三场景基线测试脚本
This commit is contained in:
1 parent
95049b6642
commit
7dbb04da17
4 files changed
+184
-9
No files matched your search
+10
-2
@@ -93,8 +93,10 @@ async fn main() -> Result<()> {
|
||||
let (ctl_tx, mut ctl_rx) = mpsc::unbounded_channel::<ControlMsg>();
|
||||
let t0 = std::time::Instant::now();
|
||||
|
||||
// 读循环(流 2):输入事件 + Ping
|
||||
// 读循环(流 2):输入事件 + Ping;Pong 附带视频下行方向的 QUIC 丢包统计
|
||||
// (conn.stats().path 统计的是本端发送方向,agent 的发送方向即视频下行)
|
||||
let keyreq_reader = keyreq.clone();
|
||||
let conn_stats = conn.clone();
|
||||
let reader = tokio::spawn(async move {
|
||||
loop {
|
||||
match read_control(&mut irecv).await {
|
||||
@@ -104,7 +106,13 @@ async fn main() -> Result<()> {
|
||||
}
|
||||
Ok(ControlMsg::Ping(t)) => {
|
||||
let agent_ts = t0.elapsed().as_millis() as u64;
|
||||
let _ = ctl_tx.send(ControlMsg::Pong { t, agent_ts });
|
||||
let p = conn_stats.stats().path;
|
||||
let _ = ctl_tx.send(ControlMsg::Pong {
|
||||
t,
|
||||
agent_ts,
|
||||
lost: p.lost_packets,
|
||||
sent: p.sent_packets,
|
||||
});
|
||||
}
|
||||
Ok(_) => {}
|
||||
Err(_) => break,
|
||||
|
||||
Reference in new issue
Block a user