From 00eb6fcb207d44f00ce538e671eb3a7d43daebbe Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 29 May 2022 13:18:15 -0400 Subject: [PATCH] support loading 16-bit wav files --- libretrogd/src/audio/wav.rs | 29 ++++++++++++++++++--- libretrogd/test-assets/22khz_16bit_1ch.wav | Bin 0 -> 22540 bytes libretrogd/test-assets/44khz_16bit_1ch.wav | Bin 0 -> 45036 bytes 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 libretrogd/test-assets/22khz_16bit_1ch.wav create mode 100644 libretrogd/test-assets/44khz_16bit_1ch.wav diff --git a/libretrogd/src/audio/wav.rs b/libretrogd/src/audio/wav.rs index 2185151..1861f95 100644 --- a/libretrogd/src/audio/wav.rs +++ b/libretrogd/src/audio/wav.rs @@ -241,9 +241,10 @@ impl AudioBuffer { "Only PCM format WAV files are supported", ))); } - if format.as_ref().unwrap().bits_per_sample != 8 { + if format.as_ref().unwrap().bits_per_sample != 8 && + format.as_ref().unwrap().bits_per_sample != 16 { return Err(WavError::BadFile(String::from( - "Only 8-bit sample WAV files are supported", + "Only 8-bit and 16-bit sample WAV files are supported", ))); } } else if chunk_header.chunk_id.id == *b"data" { @@ -262,7 +263,14 @@ impl AudioBuffer { let mut audio_buffer; if let Some(format) = format { - let spec = AudioSpec::new(format.frequency, format.channels as u8, AudioFormat::U8); + let sample_format = match format.bits_per_sample { + 8 => AudioFormat::U8, + 16 => AudioFormat::S16LSB, + // this shouldn't be able to happen given the above checks when reading the + // "fmt" chunk + _ => return Err(WavError::BadFile(String::from("Unsupported sample bit size."))) + }; + let spec = AudioSpec::new(format.frequency, format.channels as u8, sample_format); audio_buffer = AudioBuffer::new(spec); } else { return Err(WavError::BadFile(String::from("No 'fmt ' chunk was found"))); @@ -295,12 +303,27 @@ mod tests { let wav_buffer = AudioBuffer::load_wav_file(Path::new("./test-assets/22khz_8bit_1ch.wav"))?; assert_eq!(AUDIO_FREQUENCY_22KHZ, wav_buffer.spec().frequency()); assert_eq!(1, wav_buffer.spec().channels()); + assert_eq!(AudioFormat::U8, wav_buffer.spec.format); assert_eq!(11248, wav_buffer.data.len()); let wav_buffer = AudioBuffer::load_wav_file(Path::new("./test-assets/44khz_8bit_1ch.wav"))?; assert_eq!(AUDIO_FREQUENCY_44KHZ, wav_buffer.spec().frequency()); assert_eq!(1, wav_buffer.spec().channels()); + assert_eq!(AudioFormat::U8, wav_buffer.spec.format); assert_eq!(22496, wav_buffer.data.len()); + + let wav_buffer = AudioBuffer::load_wav_file(Path::new("./test-assets/22khz_16bit_1ch.wav"))?; + assert_eq!(AUDIO_FREQUENCY_22KHZ, wav_buffer.spec().frequency()); + assert_eq!(1, wav_buffer.spec().channels()); + assert_eq!(AudioFormat::S16LSB, wav_buffer.spec.format); + assert_eq!(22496, wav_buffer.data.len()); + + let wav_buffer = AudioBuffer::load_wav_file(Path::new("./test-assets/44khz_16bit_1ch.wav"))?; + assert_eq!(AUDIO_FREQUENCY_44KHZ, wav_buffer.spec().frequency()); + assert_eq!(1, wav_buffer.spec().channels()); + assert_eq!(AudioFormat::S16LSB, wav_buffer.spec.format); + assert_eq!(44992, wav_buffer.data.len()); + Ok(()) } } diff --git a/libretrogd/test-assets/22khz_16bit_1ch.wav b/libretrogd/test-assets/22khz_16bit_1ch.wav new file mode 100644 index 0000000000000000000000000000000000000000..9d100f1b49489cf942d8d694de8df03fef536458 GIT binary patch literal 22540 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 Gp8o?*I)K#x literal 0 HcmV?d00001