Файл: wordpress/wp-includes/ID3/readme.txt
Строк: 849
/////////////////////////////////////////////////////////////////
///
getID3() by James Heinrich <info@getid3.org> //
//
available at http://getid3.sourceforge.net //
//
or http://www.getid3.org //
// also
https://github.com/JamesHeinrich/getID3
//
/////////////////////////////////////////////////////////////////
*****************************************************************
*****************************************************************
getID3() is released under multiple licenses. You may choose
from the
following licenses, and use getID3 according to the
terms of the license
most suitable to your project.
GNU GPL: https://gnu.org/licenses/gpl.html
(v3)
https://gnu.org/licenses/old-licenses/gpl-2.0.html (v2)
https://gnu.org/licenses/old-licenses/gpl-1.0.html (v1)
GNU LGPL:
https://gnu.org/licenses/lgpl.html (v3)
Mozilla MPL:
http://www.mozilla.org/MPL/2.0/ (v2)
getID3 Commercial
License: http://getid3.org/#gCL (payment
required)
*****************************************************************
*****************************************************************
Copies
of each of the above licenses are included in the 'licenses'
directory of
the getID3 distribution.
+---------------------------------------------+
| If you want to
donate, there is a link on |
| http://www.getid3.org for PayPal
donations. |
+---------------------------------------------+
Quick
Start
===========================================================================
Q:
How can I check that getID3() works on my server/files?
A: Unzip getID3()
to a directory, then access
/demos/demo.browse.php
Support
===========================================================================
Q:
I have a question, or I found a bug. What do I do?
A: The preferred method
of support requests and/or bug reports is the
forum at
http://support.getid3.org/
Sourceforge
Notification
===========================================================================
It's
highly recommended that you sign up for notification from
Sourceforge for
when new versions are released. Please
visit:
http://sourceforge.net/project/showfiles.php?group_id=55859
and
click the little "monitor package" icon/link. If
you're
previously signed up for the mailing list, be aware that it has
been
discontinued, only the automated Sourceforge notification
will be used from
now on.
What does getID3()
do?
===========================================================================
Reads
& parses (to varying degrees):
¤ tags:
* APE (v1 and v2)
* ID3v1
(& ID3v1.1)
* ID3v2 (v2.4, v2.3, v2.2)
* Lyrics3 (v1 & v2)
¤
audio-lossy:
* MP3/MP2/MP1
* MPC / Musepack
* Ogg (Vorbis, OggFLAC,
Speex)
* AAC / MP4
* AC3
* DTS
* RealAudio
* Speex
* DSS
*
VQF
¤ audio-lossless:
* AIFF
* AU
* Bonk
* CD-audio (*.cda)
*
FLAC
* LA (Lossless Audio)
* LiteWave
* LPAC
* MIDI
* Monkey's
Audio
* OptimFROG
* RKAU
* Shorten
* TTA
* VOC
* WAV (RIFF)
*
WavPack
¤ audio-video:
* ASF: ASF, Windows Media Audio (WMA), Windows
Media Video (WMV)
* AVI (RIFF)
* Flash
* Matroska (MKV)
* MPEG-1 /
MPEG-2
* NSV (Nullsoft Streaming Video)
* Quicktime (including MP4)
*
RealVideo
¤ still image:
* BMP
* GIF
* JPEG
* PNG
* TIFF
*
SWF (Flash)
* PhotoCD
¤ data:
* ISO-9660 CD-ROM image (directory
structure)
* SZIP (limited support)
* ZIP (directory structure)
*
TAR
* CUE
Writes:
* ID3v1 (& ID3v1.1)
* ID3v2 (v2.3 &
v2.4)
* VorbisComment on OggVorbis
* VorbisComment on FLAC (not
OggFLAC)
* APE v2
* Lyrics3 (delete
only)
Requirements
===========================================================================
*
PHP 4.2.0 up to 5.2.x for getID3() 1.7.x (and earlier)
* PHP 5.0.5 (or
higher) for getID3() 1.8.x (and up)
* PHP 5.0.5 (or higher) for getID3()
2.0.x (and up)
* at least 4MB memory for PHP. 8MB or more is highly
recommended.
12MB is required with all modules
loaded.
Usage
===========================================================================
See
/demos/demo.basic.php for a very basic use of getID3() with no
fancy
output, just scanning one file.
See structure.txt for the returned data
structure.
*> For an example of a complete directory-browsing,
<*
*> file-scanning implementation of getID3(), please run
<*
*> /demos/demo.browse.php
<*
See /demos/demo.mysql.php for a sample recursive scanning code
that
scans every file in a given directory, and all sub-directories,
stores
the results in a database and allows various analysis /
maintenance
operations
To analyze remote files over HTTP or FTP you need
to copy the file
locally first before running getID3(). Your code would
look something
like this:
// Copy remote file locally to scan with
getID3()
$remotefilename = 'http://www.example.com/filename.mp3';
if
($fp_remote = fopen($remotefilename, 'rb')) {
$localtempfilename =
tempnam('/tmp', 'getID3');
if ($fp_local = fopen($localtempfilename,
'wb')) {
while ($buffer = fread($fp_remote, 8192)) {
fwrite($fp_local, $buffer);
}
fclose($fp_local);
//
Initialize getID3 engine
$getID3 = new getID3;
$ThisFileInfo =
$getID3->analyze($filename);
// Delete temporary file
unlink($localtempfilename);
}
fclose($fp_remote);
}
See
/demos/demo.write.php for how to write tags.
What does the returned data
structure look
like?
===========================================================================
See
structure.txt
It is recommended that you look at the output
of
/demos/demo.browse.php scanning the file(s) you're interested in
to
confirm what data is actually returned for any particular filetype
in
general, and your files in particular, as the actual data returned
may
vary considerably depending on what information is available in
the file
itself.
Notes
===========================================================================
getID3()
1.x:
If the format parser encounters a critical problem, it will
return
something in $fileinfo['error'], describing the encountered error.
If
a less critical error or notice is generated it will appear
in
$fileinfo['warning']. Both keys may contain more than one warning
or
error. If something is returned in ['error'] then the file was
not
correctly parsed and returned data may or may not be correct
and/or
complete. If something is returned in ['warning'] (and not
['error'])
then the data that is returned is OK - usually getID3() is
reporting
errors in the file that have been worked around due to known bugs
in
other programs. Some warnings may indicate that the data that
is
returned is OK but that some data could not be extracted due to
errors
in the file.
getID3() 2.x:
See above except errors are thrown (so you will
only get one
error).
Disclaimer
===========================================================================
getID3()
has been tested on many systems, on many types of files,
under many
operating systems, and is generally believe to be stable
and safe. That
being said, there is still the chance there is an
undiscovered and/or
unfixed bug that may potentially corrupt your
file, especially within the
writing functions. By using getID3() you
agree that it's not my fault if
any of your files are corrupted.
In fact, I'm not liable for anything
:)
License
===========================================================================
GNU
General Public License - see license.txt
This program is free software;
you can redistribute it and/or
modify it under the terms of the GNU General
Public License
as published by the Free Software Foundation; either version
2
of the License, or (at your option) any later version.
This program is
distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY;
without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the
GNU General Public License for more
details.
You should have received a copy of the GNU General Public
License
along with this program; if not, write to:
Free Software
Foundation, Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307,
USA.
FAQ:
Q: Can I use getID3() in my program? Do I need a commercial
license?
A: You're generally free to use getID3 however you see fit. The
only
case in which you would require a commercial license is if you're
selling your closed-source program that integrates getID3. If you
sell
your program including a copy of getID3, that's fine as long
as you
include a copy of the sourcecode when you sell it. Or you
can
distribute your code without getID3 and say "download it from
getid3.sourceforge.net"
Why is it called "getID3()" if it
does so much more than just
that?
===========================================================================
v0.1
did in fact just do that. I don't have a copy of code that old, but I
could
essentially write it today with a one-line function:
function
getID3($filename) { return
unpack('a3TAG/a30title/a30artist/a30album/a4year/a28comment/c1track/c1genreid',
substr(file_get_contents($filename), -128)); }
Future
Plans
===========================================================================
http://www.getid3.org/phpBB3/viewforum.php?f=7
*
Better support for MP4 container format
* Scan for appended ID3v2 tag at
end of file per ID3v2.4 specs (Section 5.0)
* Support for JPEG-2000
(http://www.morgan-multimedia.com/jpeg2000_overview.htm)
* Support for MOD
(mod/stm/s3m/it/xm/mtm/ult/669)
* Support for ACE (thanks Vince)
* Support
for Ogg other than Vorbis, Speex and OggFlac (ie. Ogg+Xvid)
* Ability to
create Xing/LAME VBR header for VBR MP3s that are missing VBR header
*
Ability to "clean" ID3v2 padding (replace invalid padding with
valid padding)
* Warn if MP3s change version mid-stream (in full-scan
mode)
* check for corrupt/broken mid-file MP3 streams in histogram scan
*
Support for lossless-compression formats
(http://www.firstpr.com.au/audiocomp/lossless/#Links)
(http://compression.ca/act-sound.html)
(http://web.inter.nl.net/users/hvdh/lossless/lossless.htm)
* Support for
RIFF-INFO chunks
*
http://lotto.st-andrews.ac.uk/~njh/tag_interchange.html
(thanks Nick
Humfrey <njhØsurgeradio*co*uk>)
*
http://abcavi.narod.ru/sof/abcavi/infotags.htm
(thanks Kibi)
* Better
support for Bink video
* http://www.hr/josip/DSP/AudioFile2.html
*
http://www.pcisys.net/~melanson/codecs/
* Detect mp3PRO
* Support for PSD
*
Support for JPC
* Support for JP2
* Support for JPX
* Support for JB2
*
Support for IFF
* Support for ICO
* Support for ANI
* Support for EXE
(comments, author, etc) (thanks p*quaedackersØplanet*nl)
* Support for
DVD-IFO (region, subtitles, aspect ratio, etc)
(thanks
p*quaedackersØplanet*nl)
* More complete support for SWF - parsing
encapsulated MP3 and/or JPEG content
(thanks n8n8Øyahoo*com)
* Support
for a2b
* Optional scan-through-frames for AVI verification
(thanks
rockcohenØmassive-interactive*nl)
* Support for TTF (thanks
infoØbutterflyx*com)
* Support for DSS
(http://www.getid3.org/phpBB3/viewtopic.php?t=171)
* Support for SMAF
(http://smaf-yamaha.com/what/demo.html)
http://www.getid3.org/phpBB3/viewtopic.php?t=182
* Support for AMR
(http://www.getid3.org/phpBB3/viewtopic.php?t=195)
* Support for 3gpp
(http://www.getid3.org/phpBB3/viewtopic.php?t=195)
* Support for ID4
(http://www.wackysoft.cjb.net grizlyY2KØhotmail*com)
* Parse XML data
returned in Ogg comments
* Parse XML data from Quicktime SMIL metafiles
(klausrathØmac*com)
* ID3v2 genre string creator function
* More complete
parsing of JPG
* Support for all old-style ASF packets
* ASF/WMA/WMV tag
writing
* Parse declared T??? ID3v2 text information frames, where
appropriate
(thanks Christian Fritz for the idea)
* Recognize encoder:
http://www.guerillasoft.com/EncSpot2/index.html
http://ff123.net/identify.html
http://www.hydrogenaudio.org/?act=ST&f=16&t=9414
http://www.hydrogenaudio.org/?showtopic=11785
* Support for other OS/2
bitmap structures: Bitmap Array('BA'),
Color Icon('CI'), Color
Pointer('CP'), Icon('IC'), Pointer ('PT')
http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm
* Support for
WavPack RAW mode
* ASF/WMA/WMV data packet parsing
*
ID3v2FrameFlagsLookupTagAlter()
* ID3v2FrameFlagsLookupFileAlter()
* obey
ID3v2 tag alter/preserve/discard rules
*
http://www.geocities.com/SiliconValley/Sector/9654/Softdoc/Illyrium/Aolyr.htm
*
proper checking for LINK/LNK frame validity in ID3v2 writing
* proper
checking for ASPI-TLEN frame validity in ID3v2 writing
* proper checking
for COMR frame validity in ID3v2 writing
*
http://www.geocities.co.jp/SiliconValley-Oakland/3664/index.html
* decode
GEOB ID3v2 structure as encoded by RealJukebox,
decode NCON ID3v2
structure as encoded by MusicMatch
(probably won't happen - the formats
are proprietary)
Known Bugs/Issues in getID3() that may be fixed
eventually
===========================================================================
http://www.getid3.org/phpBB3/viewtopic.php?t=25
*
Cannot determine bitrate for MPEG video with VBR video data
(need
documentation)
* Interlace/progressive cannot be determined for MPEG video
(need documentation)
* MIDI playtime is sometimes inaccurate
* AAC-RAW
mode files cannot be identified
* WavPack-RAW mode files cannot be
identified
* mp4 files report lots of "Unknown QuickTime atom
type"
(need documentation)
* Encrypted ASF/WMA/WMV files warn about
"unhandled GUID
ASF_Content_Encryption_Object"
* Bitrate split
between audio and video cannot be calculated for
NSV, only the total
bitrate. (need documentation)
* All Ogg formats (Vorbis, OggFLAC, Speex)
are affected by the
problem of large VorbisComments spanning multiple Ogg
pages, but
but only OggVorbis files can be processed with
vorbiscomment.
* The version of "head" supplied with Mac OS
10.2.8 (maybe other
versions too) does only understands a single option
(-n) and
therefore fails. getID3 ignores this and returns wrong
md5_data.
Known Bugs/Issues in getID3() that cannot be
fixed
--------------------------------------------------
http://www.getid3.org/phpBB3/viewtopic.php?t=25
*
32-bit PHP installations only:
Files larger than 2GB cannot always be
parsed fully by getID3()
due to limitations in the 32-bit PHP filesystem
functions.
NOTE: Since v1.7.8b3 there is partial support for
larger-than-
2GB files, most of which will parse OK, as long as no
critical
data is located beyond the 2GB offset.
Known will-work:
*
all file formats on 64-bit PHP
* ZIP (format doesn't support files
>2GB)
* FLAC (current encoders don't support files >2GB)
Known
will-not-work:
* ID3v1 tags (always located at end-of-file)
* Lyrics3
tags (always located at end-of-file)
* APE tags (always located at
end-of-file)
Maybe-will-work:
* Quicktime (will work if needed metadata
is before 2GB offset,
that is if the file has been hinted/optimized for
streaming)
* RIFF.WAV (should work fine, but gives warnings about not
being
able to parse all chunks)
* RIFF.AVI (playtime will probably be
wrong, is only based on
"movi" chunk that fits in the first
2GB, should issue error
to show that playtime is incorrect. Other data
should be mostly
correct, assuming that data is constant throughout the
file)
* PHP <= v5 on Windows cannot read UTF-8 filenames
Known
Bugs/Issues in other
programs
-----------------------------------
http://www.getid3.org/phpBB3/viewtopic.php?t=25
*
Windows Media Player (up to v11) and iTunes (up to v10+) do
not
correctly handle ID3v2.3 tags with UTF-16BE+BOM
encoding (they assume
the data is UTF-16LE+BOM and either
crash (WMP) or output Asian
character set (iTunes)
* Winamp (up to v2.80 at least) does not support
ID3v2.4 tags,
only ID3v2.3
see:
http://forums.winamp.com/showthread.php?postid=387524
* Some versions of
Helium2 (www.helium2.com) do not write
ID3v2.4-compliant Frame Sizes,
even though the tag is marked
as ID3v2.4) (detected by getID3())
*
MP3ext V3.3.17 places a non-compliant padding string at the end
of the
ID3v2 header. This is supposedly fixed in v3.4b21 but
only if you
manually add a registry key. This fix is not yet
confirmed. (detected
by getID3())
* CDex v1.40 (fixed by v1.50b7) writes non-compliant Ogg
comment
strings, supposed to be in the format "NAME=value"
but actually
written just "value" (detected by getID3())
*
Oggenc 0.9-rc3 flags the encoded file as ABR whether it's
actually ABR
or VBR.
* iTunes (versions "X v2.0.3", "v3.0.1" are
known-guilty, probably
other versions are too) writes ID3v2.3 comment
tags using a
frame name 'COM ' which is not valid for ID3v2.3+ (it's
an
ID3v2.2-style frame name) (detected by getID3())
* MP2enc does not
encode mono CBR MP2 files properly (half speed
sound and double
playtime)
* MP2enc does not encode mono VBR MP2 files properly (actually
encoded as stereo)
* tooLAME does not encode mono VBR MP2 files properly
(actually
encoded as stereo)
* AACenc encodes files in VBR mode
(actually ABR) even if CBR is
specified
* AAC/ADIF - bitrate_mode = cbr
for vbr files
* LAME 3.90-3.92 prepends one frame of null data (space for
the
LAME/VBR header, but it never gets written) when encoding in CBR
mode with the DLL
* Ahead Nero encodes TwinVQF with a DSIZ value (which is
supposed
to be the filesize in bytes) of "0" for TwinVQF v1.0
and "1" for
TwinVQF v2.0 (detected by getID3())
* Ahead Nero
encodes TwinVQF files 1 second shorter than they
should be
* AAC-ADTS
files are always actually encoded VBR, even if CBR mode
is specified (the
CBR-mode switches on the encoder enable ABR
mode, not CBR as such, but
it's not possible to tell the
difference between such ABR files and true
VBR)
* STREAMINFO.audio_signature in OggFLAC is always null. "The
reason
it's like that is because there is no seeking support in
libOggFLAC yet, so it has no way to go back and write the
computed sum
after encoding. Seeking support in Ogg FLAC is the
#1 item for the next
release." - Josh Coalson (FLAC developer)
NOTE: getID3() will
calculate md5_data in a method similar to
other file formats, but that
value cannot be compared to the
md5_data value from FLAC data in a FLAC
file format.
* STREAMINFO.audio_signature is not calculated in FLAC v0.3.0
&
v0.4.0 - getID3() will calculate md5_data in a method similar to
other file formats, but that value cannot be compared to the
md5_data
value from FLAC v0.5.0+
* RioPort (various versions including 2.0 and 3.11)
tags ID3v2 with
a WCOM frame that has no data portion
* Earlier versions
of Coolplayer adds illegal ID3 tags to Ogg Vorbis
files, thus making them
corrupt.
* Meracl ID3 Tag Writer v1.3.4 (and older) incorrectly truncates
the
last byte of data from an MP3 file when appending a new ID3v1 tag.
(detected by getID3())
* Lossless-Audio files encoded with and without the
-noseek switch
do actually differ internally and therefore cannot match
md5_data
* iTunes has been known to append a new ID3v1 tag on the end of
an
existing ID3v1 tag when ID3v2 tag is also present
(detected by
getID3())
* MediaMonkey may write a blank RGAD ID3v2 frame but put actual
replay gain adjustments in a series of user-defined TXXX frames
(detected
and handled by getID3() since v1.9.2)
Reference
material:
===========================================================================
[www.id3.org
material now mirrored at http://id3lib.sourceforge.net/id3/]
*
http://www.id3.org/id3v2.4.0-structure.txt
*
http://www.id3.org/id3v2.4.0-frames.txt
*
http://www.id3.org/id3v2.4.0-changes.txt
*
http://www.id3.org/id3v2.3.0.txt
* http://www.id3.org/id3v2-00.txt
*
http://www.id3.org/mp3frame.html
*
http://minnie.tuhs.org/pipermail/mp3encoder/2001-January/001800.html
<mathewhendry@hotmail.com>
*
http://www.dv.co.yu/mpgscript/mpeghdr.htm
*
http://www.mp3-tech.org/programmer/frame_header.html
*
http://users.belgacom.net/gc247244/extra/tag.html
*
http://gabriel.mp3-tech.org/mp3infotag.html
*
http://www.id3.org/iso4217.html
*
http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
*
http://www.xiph.org/ogg/vorbis/doc/framing.html
*
http://www.xiph.org/ogg/vorbis/doc/v-comment.html
*
http://leknor.com/code/php/class.ogg.php.txt
*
http://www.id3.org/iso639-2.html
* http://www.id3.org/lyrics3.html
*
http://www.id3.org/lyrics3200.html
*
http://www.psc.edu/general/software/packages/ieee/ieee.html
*
http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html
*
http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
*
http://www.jmcgowan.com/avi.html
* http://www.wotsit.org/
*
http://www.herdsoft.com/ti/davincie/davp3xo2.htm
*
http://www.mathdogs.com/vorbis-illuminated/bitstream-appendix.html
*
"Standard MIDI File Format" by Dustin Caldwell (from
www.wotsit.org)
* http://midistudio.com/Help/GMSpecs_Patches.htm
*
http://www.xiph.org/archives/vorbis/200109/0459.html
*
http://www.replaygain.org/
* http://www.lossless-audio.com/
*
http://download.microsoft.com/download/winmediatech40/Doc/1.0/WIN98MeXP/EN-US/ASF_Specification_v.1.0.exe
*
http://mediaxw.sourceforge.net/files/doc/Active%20Streaming%20Format%20(ASF)%201.0%20Specification.pdf
*
http://www.uni-jena.de/~pfk/mpp/sv8/ (archived at
http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/sv8/)
*
http://jfaul.de/atl/
* http://www.uni-jena.de/~pfk/mpp/ (archived at
http://www.hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/)
*
http://www.libpng.org/pub/png/spec/png-1.2-pdg.html
*
http://www.real.com/devzone/library/creating/rmsdk/doc/rmff.htm
*
http://www.fastgraph.com/help/bmp_os2_header_format.html
*
http://netghost.narod.ru/gff/graphics/summary/os2bmp.htm
*
http://flac.sourceforge.net/format.html
*
http://www.research.att.com/projects/mpegaudio/mpeg2.html
*
http://www.audiocoding.com/wiki/index.php?page=AAC
*
http://libmpeg.org/mpeg4/doc/w2203tfs.pdf
*
http://www.geocities.com/xhelmboyx/quicktime/formats/qtm-layout.txt
*
http://developer.apple.com/techpubs/quicktime/qtdevdocs/RM/frameset.htm
*
http://www.nullsoft.com/nsv/
*
http://www.wotsit.org/download.asp?f=iso9660
*
http://sandbox.mc.edu/~bennet/cs110/tc/tctod.html
*
http://www.cdroller.com/htm/readdata.html
*
http://www.speex.org/manual/node10.html
*
http://www.harmony-central.com/Computer/Programming/aiff-file-format.doc
*
http://www.faqs.org/rfcs/rfc2361.html
* http://ghido.shelter.ro/
*
http://www.ebu.ch/tech_t3285.pdf
* http://www.sr.se/utveckling/tu/bwf
*
http://ftp.aessc.org/pub/aes46-2002.pdf
* http://cartchunk.org:8080/
*
http://www.broadcastpapers.com/radio/cartchunk01.htm
*
http://www.hr/josip/DSP/AudioFile2.html
*
http://home.attbi.com/~chris.bagwell/AudioFormats-11.html
*
http://www.pure-mac.com/extkey.html
*
http://cesnet.dl.sourceforge.net/sourceforge/bonkenc/bonk-binary-format-0.9.txt
*
http://www.headbands.com/gspot/
*
http://www.openswf.org/spec/SWFfileformat.html
*
http://j-faul.virtualave.net/
*
http://www.btinternet.com/~AnthonyJ/Atari/programming/avr_format.html
*
http://cui.unige.ch/OSG/info/AudioFormats/ap11.html
*
http://sswf.sourceforge.net/SWFalexref.html
*
http://www.geocities.com/xhelmboyx/quicktime/formats/qti-layout.txt
*
http://www-lehre.informatik.uni-osnabrueck.de/~fbstark/diplom/docs/swf/Flash_Uncovered.htm
*
http://developer.apple.com/quicktime/icefloe/dispatch012.html
*
http://www.csdn.net/Dev/Format/graphics/PCD.htm
* http://tta.iszf.irk.ru/
*
http://www.atsc.org/standards/a_52a.pdf
*
http://www.alanwood.net/unicode/
*
http://www.freelists.org/archives/matroska-devel/07-2003/msg00010.html
*
http://www.its.msstate.edu/net/real/reports/config/tags.stats
*
http://homepages.slingshot.co.nz/~helmboy/quicktime/formats/qtm-layout.txt
*
http://brennan.young.net/Comp/LiveStage/things.html
*
http://www.multiweb.cz/twoinches/MP3inside.htm
*
http://www.geocities.co.jp/SiliconValley-Oakland/3664/alittle.html#GenreExtended
*
http://www.mactech.com/articles/mactech/Vol.06/06.01/SANENormalized/
*
http://www.unicode.org/unicode/faq/utf_bom.html
*
http://tta.corecodec.org/?menu=format
* http://www.scvi.net/nsvformat.htm
*
http://pda.etsi.org/pda/queryform.asp
*
http://cpansearch.perl.org/src/RGIBSON/Audio-DSS-0.02/lib/Audio/DSS.pm
*
http://trac.musepack.net/trac/wiki/SV8Specification
*
http://wyday.com/cuesharp/specification.php
*
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html