QUOTE(Peter @ Nov 28 2007, 15:39)

QUOTE(TBeck @ Nov 28 2007, 13:02)

2) Newer versions of Foobar put a wave file header at the front of the file, but with an invalid size entry.
... and old versions give you values calculated from source file length, which are inaccurate in many cases: truncated source file, input format not signaling accurate length such as WMA lossless or MP3 without LAME-style headers, etc; you run into the same scenario eventually but your encoder works as intended in most cases so commandline encoder developers tend to overlook the issue, leaving users with an unreliable solution. The header you're describing as "invalid" isn't even technically invalid, it just simulates a truncated WAV file scenario.
This was not meant as criticism!!! I had read some threads dealing with this issue and already knew why foobar does it this way. But since i am not very fluid in writing english, i was too lazy to try to explain it. Sorry if you got this wrong...
QUOTE(Peter @ Nov 28 2007, 15:39)

My preferred solution to this issue (as well as the WAV file size limit) is to add an "ignore WAV length fields" commandline switch to the encoder, so the frontend can tell your encoder to expect an unknown-length stream.
Surely, TAK 1.0.3 has such a switch.
QUOTE(Peter @ Nov 28 2007, 15:39)

I'm not in position to criticize your designs, but I find it strange that so many popular lossless formats run into seektable allocation trouble when encoding from unknown-length streams. I personally just keep recommending people to use formats that deal with this scenario cleanly (such was WavPack).
There are multiple ways to allow your format to encode a stream without knowing its length in advance: putting seeking information in the bitstream itself rather than maintaining a seektable (Ogg-style), putting seektable at the end of the stream, etc. I guess you can't use any of those now that your bitstream format is frozen.
Something like "putting seeking information in the bitstream" is defined for the container, but has not been implemented yet.
I can think about one reason for putting the seek table at the beginning of the file:
If you want to encode on a hardware platform with very little memory, you possibly can't keep the whole seek table data in memory until the file end has been reached.
But i don't know how relevant this is.
Thomas