Skip to main content

Module codec

Module codec 

Source
Expand description

Audio codec implementations for RTP media.

This module provides encoding and decoding for common VoIP codecs:

  • G.711 μ-law (PCMU): PT 0, 8kHz, widely supported
  • G.711 A-law (PCMA): PT 8, 8kHz, common in Europe
  • Opus: PT 111, 48kHz, modern high-quality codec (feature-gated)

§Example

use rtp_engine::codec::{CodecType, create_encoder, create_decoder};

let mut encoder = create_encoder(CodecType::Pcmu).unwrap();
let mut decoder = create_decoder(CodecType::Pcmu).unwrap();

// Encode 160 samples (20ms at 8kHz)
let pcm: Vec<i16> = vec![0; 160];
let mut encoded = Vec::new();
encoder.encode(&pcm, &mut encoded);

// Decode back to PCM
let mut decoded = Vec::new();
decoder.decode(&encoded, &mut decoded);

Structs§

OpusDecoder
Opus decoder with integrated 48kHz→8kHz resampling.
OpusEncoder
Opus encoder with integrated 8kHz→48kHz resampling.
PcmaDecoder
G.711 A-law (PCMA) decoder.
PcmaEncoder
G.711 A-law (PCMA) encoder.
PcmuDecoder
G.711 μ-law (PCMU) decoder.
PcmuEncoder
G.711 μ-law (PCMU) encoder.

Enums§

CodecType
Supported audio codec types.

Traits§

AudioDecoder
Trait for audio decoders.
AudioEncoder
Trait for audio encoders.

Functions§

create_decoder
Create a decoder for the specified codec type.
create_encoder
Create an encoder for the specified codec type.
negotiate_codec
Negotiate a codec from SDP answer.