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§
- XboxADPCM
Decoder - Xbox ADPCM decoder implementation.
- XboxADPCM
Encoder - XboxADPCM encoder implementation.
Traits§
- XboxADPCM
Decode Sink - Writer for outputting PCM samples.
- XboxADPCM
Encode Sink - Writer outputting ADPCM blocks.