[vorbis-dev] RE: File Formats history [was WAVE Format info

Kevin Marks kmarks at apple.com
Tue Jul 31 02:47:32 PDT 2001



Here's a brief history of multimedia file formats:

Pre 1985 - everyone made up their own. No interchange at all

1985 EA introduced IFF spec. Based on a very simple idea  - use a 4 
character tag and length for each section of the file. If you 
recognise the tag, parse it. If you don't skip it using the length to 
get the next one.
This has the very nice characteristic that you can (if careful) 
extend the file format without braking old parsers. EA distributed 
source and good docs for this, and (at least when I was developing 
for them) expected game data to use this format.

This spread like wildfire, for obvious reasons. When new formats were 
invented after this, they took this into account.

AIFF is explicitly an IFF format:
http://developer.apple.com/techpubs/quicktime/qtdevdocs/INMAC/SOUND/imsoundmgr.30.htm

QuickTime adopted the same idea, but somehow inverted the order of 
the tag/length pairs. The same principles apply though, and this 
format has lasted well, and been greatly extended over time. MPEG-4 
adopted a slight variation for its file format.
http://developer.apple.com/techpubs/quicktime/qtdevdocs/QTFF/qtff.html

WAVE and AVI are little-endian variants of IFF that MS/IBM originally 
called RIFF.
http://www.saettler.com/RIFFMCI/riffmci.html

Since then MS has tried hard to kill off WAVE and AVI in favour of 
their patented and proprietary ASF (mow WMV and WMA) format, but 
everyone else still wants a readable format, so AVI's and WAVE's are 
widely generated.

I haven't read the .ogg documentation closely enough to see how well 
it fits this model, but my impression is that it doesn't

There is some more discussion here:

http://www.ubi.pt/%7Edfis-wg/midi/midi/tech/aboutiff.htm

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list