T6 wiring: Trunking in relay hot path - TrunkedForwarder wraps transport with TrunkBatcher - run_participant uses 5ms flush timer when trunking enabled - send_trunk/recv_trunk on QuinnTransport - --trunking flag on relay config - 2 new tests: forwarder batches, auto-flush on full T7 wiring: Mini-frames in encoder/decoder - MediaPacket::encode_compact/decode_compact with MiniFrameContext - CallEncoder sends mini-headers for consecutive frames (full every 50th) - CallDecoder auto-detects full vs mini on receive - mini_frames_enabled in CallConfig (default true) - 3 new tests: encode/decode sequence, periodic full, disabled mode Noise suppression (nnnoiseless/RNNoise) - NoiseSupressor in wzp-codec: pure Rust ML-based noise removal - Processes 960-sample frames as two 480-sample halves - Integrated in CallEncoder before silence detection - noise_suppression in CallConfig (default true) - 4 new tests: creation, processing, SNR improvement, passthrough T1-S4: Adaptive playout delay - AdaptivePlayoutDelay: EMA-based jitter tracking (NetEq-inspired) - Computes target_delay from observed inter-arrival jitter - JitterBuffer::new_adaptive() uses adaptive delay - adaptive_jitter in CallConfig (default true) - 5 new tests: stable, jitter increase, recovery, clamping, estimate 272 tests passing across all crates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
26 lines
573 B
TOML
26 lines
573 B
TOML
[package]
|
|
name = "wzp-codec"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
description = "WarzonePhone audio codec layer — Opus + Codec2 encoding/decoding"
|
|
|
|
[dependencies]
|
|
wzp-proto = { workspace = true }
|
|
tracing = { workspace = true }
|
|
|
|
# Opus bindings
|
|
audiopus = { workspace = true }
|
|
|
|
# Pure-Rust Codec2 implementation
|
|
codec2 = { workspace = true }
|
|
|
|
# RNG for comfort noise generation
|
|
rand = { workspace = true }
|
|
|
|
# ML-based noise suppression (pure-Rust port of RNNoise)
|
|
nnnoiseless = "0.5"
|
|
|
|
[dev-dependencies]
|