Got some multi-channel wave files whose lengthInSeconds is being reported as 0. Turns out these files have WAVE_FORMAT_EXTENSIBLE set under their wFormatTag.
Here’s the relevant MSDN doc…
http://msdn.microsoft.com/en-us/library/ms791274.aspx
Here’s a sample fmt chunk
66 6D 74 20 28 00 00 00 FE FF 04 00 00 77 01 00
00 94 11 00 0C 00 18 00 16 00 18 00 0F 00 00 00
01 00 00 00 00 00 10 00 80 00 00 AA 00 38 9B 71
And the juce line of code.(line 299 in juce_WavAudioFormat)
if (format == 3)
usesFloatingPointData = true;
else if (format != 1)
bytesPerFrame = 0;
If its not too much trouble to check for the Extensible Format and sanity check the SubFormat that its still PCM, that’d be great!
I may have a chance this week to cover it myself and will post code if I do.