Skip to main content

Module jitter

Module jitter 

Source
Expand description

Jitter buffer implementations for RTP media.

Jitter buffers smooth out variable network delay (jitter) by buffering packets before playout. This module provides two strategies:

  • Fixed: Constant delay, simple and predictable
  • Adaptive: Dynamically adjusts delay based on observed jitter

§Example

use rtp_engine::jitter::{JitterBuffer, JitterConfig, JitterMode};

// Create an adaptive jitter buffer
let config = JitterConfig {
    mode: JitterMode::Adaptive { target_ms: 60, min_ms: 20, max_ms: 200 },
    clock_rate: 8000,
    max_packets: 50,
};
let mut jitter = JitterBuffer::new(config);

// Push received RTP packets (seq, timestamp, payload)
jitter.push(0, 0, vec![0u8; 160]);
jitter.push(1, 160, vec![0u8; 160]);

// Pop packets for playout (returns None if not ready yet)
// In real usage, wait for the jitter delay before popping

Structs§

BufferedPacket
A buffered RTP packet ready for playout.
JitterBuffer
Jitter buffer for RTP packet reordering and playout scheduling.
JitterConfig
Configuration for the jitter buffer.
JitterStats
Statistics from the jitter buffer.

Enums§

JitterMode
Jitter buffer operating mode.