From dd32c2fcd1e9b88b9dac91e3686d9ece05ee44ca Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 18 Jun 2026 18:14:13 +0100 Subject: [PATCH] Report Muninn RUDP media pressure counters --- crates/muninn-daemon/src/main.rs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/crates/muninn-daemon/src/main.rs b/crates/muninn-daemon/src/main.rs index f77bb10..0a7d536 100644 --- a/crates/muninn-daemon/src/main.rs +++ b/crates/muninn-daemon/src/main.rs @@ -1257,8 +1257,10 @@ fn run_rudp_mux_once( let _ = transport.receive_once()?; transport.poll_resends()?; if payloads_dropped == 1 || payloads_dropped % 300 == 0 { + let expired = transport.stats().reliable_packets_expired; eprintln!( - "Muninn RUDP media sender dropped {payloads_dropped} stale queued payloads before send." + "{}", + rudp_media_progress_detail(payloads_sent, payloads_dropped, expired) ); } continue; @@ -1272,8 +1274,10 @@ fn run_rudp_mux_once( transport.poll_resends()?; payloads_sent += 1; if payloads_sent == 1 || payloads_sent % 900 == 0 { + let expired = transport.stats().reliable_packets_expired; eprintln!( - "Muninn RUDP media sender sent {payloads_sent} typed payloads; latest payload was {payload_len} bytes." + "{}; latest payload was {payload_len} bytes.", + rudp_media_progress_detail(payloads_sent, payloads_dropped, expired) ); } } @@ -1283,8 +1287,10 @@ fn run_rudp_mux_once( transport.poll_resends()?; } Err(mpsc::RecvTimeoutError::Disconnected) => { + let expired = transport.stats().reliable_packets_expired; break Ok(format!( - "encoder stdout ended after {payloads_sent} typed RUDP media payloads sent and {payloads_dropped} stale queued payloads dropped" + "encoder stdout ended; {}", + rudp_media_progress_detail(payloads_sent, payloads_dropped, expired) )); } } @@ -1322,6 +1328,12 @@ fn media_payload_queue_age_exceeded(queued_at: Instant, now: Instant, max_age: D now.saturating_duration_since(queued_at) > max_age } +fn rudp_media_progress_detail(sent: u64, queue_dropped: u64, reliable_expired: u64) -> String { + format!( + "Muninn RUDP media progress: sent={sent} queue_dropped={queue_dropped} reliable_expired={reliable_expired}" + ) +} + fn open_media_rudp_transport(options: &Options) -> Result { let endpoint: SocketAddr = format!("{}:{}", options.target_host, options.port) .parse() @@ -5822,6 +5834,14 @@ mod tests { )); } + #[test] + fn rudp_media_progress_detail_reports_queue_and_transport_pressure() { + assert_eq!( + rudp_media_progress_detail(120, 3, 9), + "Muninn RUDP media progress: sent=120 queue_dropped=3 reliable_expired=9" + ); + } + #[test] fn idle_surface_advertises_affordances_without_active_streams() { let options = Options::parse([].into_iter()).unwrap();