Commit f8251041 authored by Martin Storsjo's avatar Martin Storsjo

Add support for waveformatex files

This is used for multichannel wave files.
parent 16f75a57
...@@ -124,7 +124,17 @@ void* wav_read_open(const char *filename) { ...@@ -124,7 +124,17 @@ void* wav_read_open(const char *filename) {
wr->byte_rate = read_int32(wr); wr->byte_rate = read_int32(wr);
wr->block_align = read_int16(wr); wr->block_align = read_int16(wr);
wr->bits_per_sample = read_int16(wr); wr->bits_per_sample = read_int16(wr);
skip(wr->wav, sublength - 16); if (wr->format == 0xfffe) {
if (sublength < 28) {
// Insufficient data for waveformatex
break;
}
skip(wr->wav, 8);
wr->format = read_int32(wr);
skip(wr->wav, sublength - 28);
} else {
skip(wr->wav, sublength - 16);
}
} else if (subtag == TAG('d', 'a', 't', 'a')) { } else if (subtag == TAG('d', 'a', 't', 'a')) {
data_pos = ftell(wr->wav); data_pos = ftell(wr->wav);
wr->data_length = sublength; wr->data_length = sublength;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment