Skip to main content

decode/
decode.rs

1//! Decode an APE file and print basic info.
2//!
3//! Usage: cargo run --example decode -- <file.ape>
4
5use std::fs::File;
6use std::io::BufReader;
7
8fn main() {
9    let path = std::env::args().nth(1).expect("Usage: decode <file.ape>");
10    let file = File::open(&path).expect("failed to open file");
11    let mut decoder =
12        ape_decoder::ApeDecoder::new(BufReader::new(file)).expect("failed to parse APE");
13
14    let info = decoder.info();
15    println!(
16        "{}Hz, {} ch, {}-bit, {} samples ({} ms)",
17        info.sample_rate, info.channels, info.bits_per_sample, info.total_samples, info.duration_ms,
18    );
19
20    let pcm = decoder.decode_all().expect("failed to decode");
21    println!("Decoded {} bytes of PCM", pcm.len());
22}