gap/lib.rs
1//! **Group Audio Protocol** — audio sub-protocol of the Group Protocol Stack.
2//!
3//! Profile (GAP §7): Opus at 48 kHz REQUIRED, 20 ms packetisation
4//! RECOMMENDED, FEC RECOMMENDED, reliable delivery NOT RECOMMENDED.
5//!
6//! This crate provides:
7//!
8//! * [`GapPayload`] — the CBOR-encoded audio payload format.
9//! * [`GapClient`] — stateful client that maintains a per-source
10//! `rtp_sequence` window (replay protection, GAP §10) and validates
11//! `key_phase` against the current group epoch.
12//!
13//! See [`gbp-protocol`] for the underlying frame format.
14//!
15//! [`gbp-protocol`]: https://crates.io/crates/gbp-protocol
16
17#![deny(missing_docs)]
18
19pub mod client;
20pub mod jitter;
21pub mod payload;
22
23pub use client::{GapAccept, GapClient, GapError};
24pub use jitter::{JitterBuffer, JitterPush};
25pub use payload::GapPayload;