Expand description
Safe (and optionally no-std) Rust crate for encoding and decoding Xbox ADPCM blocks.
Decoding example
Here is example code for decoding stereo audio.
use xbadpcm::{XboxADPCMDecoder, XboxADPCMDecodeSink};
let adpcm_data = read_some_adpcm_blocks();
let mut output = [Vec::new(), Vec::new()];
// Two channels
let mut encoder = XboxADPCMDecoder::new(2, &mut output);
// Decode
encoder.decode(&adpcm_data).unwrap();
assert!(!output[0].is_empty() && output[0].len() == output[1].len());
Encoding example
Here is example code for encoding stereo audio.
use xbadpcm::{XboxADPCMEncoder, XboxADPCMEncodeSink};
let (left_channel, right_channel) = read_some_pcm_samples();
let mut output = Vec::new();
// Two channels with a lookahead of three samples
let mut encoder = XboxADPCMEncoder::new(2, 3, &mut output);
// Encode
encoder.encode(&[&left_channel, &right_channel]).unwrap();
// Finish encoding
encoder.finish().unwrap();
assert!(!output.is_empty());
Structs
Xbox ADPCM decoder implementation.
XboxADPCM encoder implementation.
Traits
Writer for outputting PCM samples.
Writer outputting ADPCM blocks.