- DredTuner: maps live network metrics (loss/RTT/jitter) to continuous DRED duration every ~500ms instead of discrete tier-locked values. Includes jitter-spike detection for pre-emptive Starlink-style boost. - Opus6k DRED extended from 500ms to 1040ms (max libopus 1.5 supports) - PMTUD: quinn MtuDiscoveryConfig with upper_bound=1452, 300s interval - TrunkedForwarder respects discovered MTU (was hard-coded 1200) - QuinnPathSnapshot exposes quinn internal stats + discovered MTU - AudioEncoder trait: set_expected_loss() + set_dred_duration() methods - PathMonitor: sliding-window jitter variance for spike detection - Integrated into both Android and desktop send tasks in engine.rs - 14 new tests (10 tuner unit + 4 encoder integration) - Updated ARCHITECTURE.md, PROGRESS.md, PRD-dred-integration, PRD-mtu Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
35 lines
1.4 KiB
Rust
35 lines
1.4 KiB
Rust
//! WarzonePhone Transport Layer
|
|
//!
|
|
//! QUIC-based transport using quinn with:
|
|
//! - DATAGRAM frames for unreliable media packets
|
|
//! - Reliable streams for signaling messages
|
|
//! - Path quality monitoring (EWMA loss, RTT, bandwidth estimation)
|
|
//! - Connection lifecycle management
|
|
//!
|
|
//! ## Architecture
|
|
//!
|
|
//! - `config` — QUIC configuration tuned for lossy VoIP links
|
|
//! - `datagram` — DATAGRAM frame serialization and MTU management
|
|
//! - `reliable` — Length-prefixed JSON framing over reliable QUIC streams
|
|
//! - `path_monitor` — EWMA-based PathQuality estimation
|
|
//! - `quic` — `QuinnTransport` implementing the `MediaTransport` trait
|
|
//! - `connection` — Connection lifecycle (create endpoint, connect, accept)
|
|
|
|
pub mod config;
|
|
pub mod connection;
|
|
pub mod datagram;
|
|
pub mod path_monitor;
|
|
pub mod quic;
|
|
pub mod reliable;
|
|
|
|
pub use config::{client_config, server_config, server_config_from_seed, tls_fingerprint};
|
|
pub use connection::{accept, connect, create_endpoint, create_ipv6_endpoint};
|
|
pub use path_monitor::PathMonitor;
|
|
pub use quic::{QuinnPathSnapshot, QuinnTransport};
|
|
pub use wzp_proto::{MediaTransport, PathQuality, TransportError};
|
|
|
|
// Re-export the quinn Endpoint type so downstream crates (wzp-desktop) can
|
|
// thread a shared endpoint between signaling and media connections without
|
|
// needing to depend on quinn directly.
|
|
pub use quinn::Endpoint;
|