- 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>
38 lines
1.3 KiB
Rust
38 lines
1.3 KiB
Rust
//! WarzonePhone Protocol — shared types, traits, and core logic.
|
|
//!
|
|
//! This crate defines the contracts between all other wzp-* crates.
|
|
//! It contains:
|
|
//! - Wire format types (MediaHeader, MediaPacket, SignalMessage)
|
|
//! - Codec, FEC, crypto, and transport trait definitions
|
|
//! - Adaptive quality controller
|
|
//! - Jitter buffer
|
|
//! - Session state machine
|
|
//!
|
|
//! Compatible with the Warzone messenger identity model:
|
|
//! - Identity = 32-byte seed → HKDF → Ed25519 (signing) + X25519 (encryption)
|
|
//! - Fingerprint = SHA-256(Ed25519 pub)[:16]
|
|
|
|
pub mod bandwidth;
|
|
pub mod codec_id;
|
|
pub mod dred_tuner;
|
|
pub mod error;
|
|
pub mod jitter;
|
|
pub mod packet;
|
|
pub mod quality;
|
|
pub mod session;
|
|
pub mod traits;
|
|
|
|
// Re-export key types at crate root for convenience.
|
|
pub use codec_id::{CodecId, QualityProfile};
|
|
pub use error::*;
|
|
pub use packet::{
|
|
CallAcceptMode, HangupReason, MediaHeader, MediaPacket, MiniFrameContext, MiniHeader,
|
|
QualityReport, RoomParticipant, SignalMessage, TrunkEntry, TrunkFrame, FRAME_TYPE_FULL,
|
|
FRAME_TYPE_MINI,
|
|
};
|
|
pub use bandwidth::{BandwidthEstimator, CongestionState};
|
|
pub use dred_tuner::{DredTuner, DredTuning};
|
|
pub use quality::{AdaptiveQualityController, NetworkContext, Tier};
|
|
pub use session::{Session, SessionEvent, SessionState};
|
|
pub use traits::*;
|