1.18 - 2009.10.22
 * ASF:
   * Distinguish between empty and absent tag values in
     ContentDescriptionObjects. (#29)
 * mid3iconv:
   * Fix a crash when processing empty (invalid) text frames.
 * MAJOR API INCOMPATIBILITY!!!!
   * EasyID3FileType is now in mutagen.easyid3, not mutagen.id3. This
     change was necessary to restore API compatibility with 1.16, as
     1.17 accidentally contained a circular import preventing
     mutagen.easyid3 from importing by itself. (#32)

1.17 - 2009.10.07
 * ID3: 
   * Support for the iTunes non-standard TSO2 and TSOC frames.
   * Attempt to recover from bad SYLT frames. (#2)
   * Attempt to recover from faulty extended header flags. (#4, #21)
   * Fix a bug in ID3v2.4 footer flag detection, (#5)
 * MP4:
   * Don't fail or double-encode UTF-8 strings when given a str.
   * Don't corrupt 64 bit atom sizes when resizing atoms. (#17)
 * EasyID3:
   * Extension API for defining new "easy" tags at runtime.
   * Support for many, many more tags.
 * OggVorbis, OggSpeex: Handle bitrates below 0 as per the spec. (#30)
 * EasyMP4: Like EasyID3, but for iTunes MPEG-4 files.
 * mutagen.File: New 'easy=True' argument to create new EasyMP3, EasyMP4,
   EasyTrueAudio, and EasyID3FileType instances.

1.16 - 2009.06.15
 * Website / code repository move.
 * Bug Fixes:
   * EasyID3: Invalid keys now raise KeyError (and ValueError).
   * mutagen.File: .flac files with an ID3 tag will be opened as FLAC.
 * MAJOR API INCOMPATIBILITY!!!!
   * Python 2.6 has required us to rename the .format attribute of M4A/MP4
     cover atoms, because it conflicts with the new str.format method.
     It has been renamed .imageformat.

1.15 - 2008.12.01
 * Bug Fixes:
   * mutagen.File: Import order no longer affects what type is returned.
   * mutagen.id3: Compression of frames is now disabled.
   * mutagen.flac.StreamInfo: Fix channel mask (support channels > 2). [35]
   * mutagen.mp3: Ignore Xing headers if they are obviously wrong.

1.14 - 2008.05.31
 * Bug Fixes:
   * MP4/M4A: Fixed saving of atoms with 64-bit size on 64-bit platforms.
   * MP4: Conversion of 'gnre' atoms to '\xa9gen' text atoms now correctly
     produces a list of string values, not just a single value.
   * ID3: Broken RVA2 frames are now discarded. (Vladislav Naumov)
   * ID3: Use long integers when appropriate.
  * VCommentDict: Raise UnicodeEncodeErrors when trying to use a Unicode
    key that is not valid ASCII; keys are also normalized to ASCII
    str objects. (Forest Bond)
 * Tests:
   * FLAC: Use 2**64 instead of 2**32 to test overflow behavior.

1.13 - 2007.12.03
 * Bug Fixes:
   * FLAC: Raise IOError, instead of UnboundLocalError, when trying
     to open a non-existant file. (Lukáš Lalinský, Debian #448734)
   * Throw out invalid frames when upgrading from 2.3 to 2.4.
   * Fixed reading of Unicode strings from ASF files on big-endian
     platforms.
 * TCP/TCMP support. (Debian #452231)
 * Faster implementation of file-writing when mmap fails, and
   exclusive advisory locking when available.
 * Test cases to ensure Mutagen is not vulnerable to CVE-2007-4619.
   It is not now, nor was it ever.
 * Use VBRI header to calculate length of VBR MP3 files if the Xing
   header is not found.

1.12 - 2007.08.04
 * Write important ID3v2 frames near the start. (Lukáš Lalinský)
 * Clean up distutils functions.

1.11 - 2007.04.26
 * New Features:
   * mid3v2 can now set URL frames. (Vladislav Naumov)
   * Musepack: Skip ID3v2 tags. (Lukáš Lalinský)
 * Bug Fixes:
   * mid3iconv: Skip all timestamp frames. (Lukáš Lalinský)
   * WavPack: More accurate length calculation. ('ak')
   * PairedTextFrame: Fix typo in documentation. (Lukáš Lalinský)
   * ID3: Fixed incorrect TDAT conversion. The format is DDMM, not
     MMDD. (Lukáš Lalinský)
 * API:
   * Metadata no longer inherits from dict.
   * Relatedly, the MRO has changed on several types.
   * More documentation for MP4 atoms. (Lukáš Lalinský)
   * Prefer MP3 for files with unknown extensions and ID3 tags.

1.10.1 - 2007.01.23
 * Bug Fixes:
   * Documentation mentions ASF support.
   * APEv2 flags and valid keys are fixed.
   * Tests pass on Python 2.3 again.

1.10 - 2007.01.21
 * New Features:
   * FLAC: Skip ID3 tags. Added option to delete them on save.
   * EncodedTextSpec: Make private members more private.
   * Corrupted Oggs generated by GStreamer (e.g. Sound Juicer) can be read.
   * FileTypes have a .mime attribute which is a list of likely MIME types
     for the file.
   * ASF (WMA/WMV) support.
 * Bug Fixes:
   * ID3: Fixed reading of v2.3 tags with unsynchronized data.
   * ID3: The data length indicator for compressed tags is written
     as a synch-safe integer.

1.9 - 2006.12.09
 * New Features:
   * OptimFROG support.
   * New mutagen.mp4 module with support for multiple data fields per atom
     and more compatible tag saving implementation.
   * Support for embedded pictures in FLAC files (new in FLAC 1.1.3).
 * mutagen.m4a is deprecated in favor of mutagen.mp4.

1.8 - 2006.10.02
 * New Features:
   * MonkeysAudio support. (#851, Lukáš Lalinský)
   * APEv2 support on Python 2.5; see API-NOTES. (#852)

1.7.1 - 2006.09.24
 * Bug Fixes:
   * Expose full ID3 tag size as .size. (#848)

 * New Features:
   * Musepack Replay Gain data is available in SV7 files.

1.7 - 2006.09.15
 * Bug Fixes:
   * Trying to save an empty tag deletes it. (#813)
   * The semi-public API removal mentioned in 1.6's API-NOTES happened.
   * Stricter frame ID validation. (#830, Lukáš Lalinský)
   * Use os.path.devnull on Win32/Mac OS X. (#831, Lukáš Lalinský)

 * New Features:
   * FLAC cuesheet and seektable support. (#791, Nuutti Kotivuori)
   * Kwargs can be passed to ID3 constructors. (#824, Lukáš Lalinský)
   * mutagen.musepack: Read/tag Musepack files. (#825, Lukáš Lalinský)

 * Tools:
   * mutagen-inspect responds immediately to keyboard interrupts.

1.6 - 2006.08.09
 * Bug Fixes:
   * IOError rather than NameError is raised when File succeeds in
     typefinding but fails in stream parsing.
   * errors= kwarg is correctly interpreted for FLAC tags now.
   * Handle struct.pack API change in Python 2.5b2. (SF #1530559)
   * Metadata 'load' methods always reset in-memory tags.
   * Metadata 'delete' methods always clear in-memory tags.

 * New Features:
   * Vorbis comment vendor strings include the Mutagen version.
   * mutagen.id3: Read ASPI, ETCO, SYTC, MLLT, EQU2, and LINK frames.
   * mutagen.m4a: Read/tag MPEG-4 AAC audio files with iTunes tags. (#681)
   * mutagen.oggspeex: Read/tag Ogg Speex files.
   * mutagen.trueaudio: Read/tag True Audio files.
   * mutagen.wavpack: Read/tag WavPack files.

 * Tools:
   * mid3v2: --delete-frames. (#635)

1.5.1 - 2006.06.26
 * Bug Fixes:
   * Handle ENODEV from mmap (e.g. on fuse+sshfs).
   * Reduce test rerun time.

1.5 - 2006.06.20
 * Bug Fixes:
   * APEv2
      * Invalid Lyrics3v2 tags are ignored/overwritten.
      * Binary values are autodetected as documented.
   * OggVorbis, OggFLAC:
      * Write when the setup packet spans multiple pages.
      * Zero granule position for header packets.

 * New Features:
   * mutagen.oggtheora: Read/tag Ogg Theora files.
   * Test Ogg formats with ogginfo, if present.

1.4 - 2006.06.03
 * Bug Fixes:
   * EasyID3: Fix tag["key"] = "string" handler. (#693)
   * APEv2:
     * Skip Lyrics3v2 tags. (Miguel Angel Alvarez)
     * Avoid infinite loop on malformed tags at the start of the file.
   * Proper ANSI semantics for file positioning. (#707)

 * New Features:
   * VComment: Handle malformed Vorbis comments when errors='ignore' or 
     errors='replace' is passed to VComment#load.
     (Bastian Kleineidam, #696)
   * Test running is now controlled through setup.py (./setup.py test).
   * Test coverage data can be generated (./setup.py coverage).
   * Considerably more test coverage.

1.3 - 2006.05.29
 * New Features:
   * mutagen.File: Automatic file type detection.
   * mutagen.ogg: Generic Ogg stream parsing. (#612)
   * mutagen.oggflac: Read/tag Ogg FLAC files.
   * mutagen.oggvorbis no longer depends on pyvorbis.
   * ID3: SYLT support. (#672)

1.2 - 2006.04.23
 * Bug Fixes:
   * MP3: Load files with zeroed Xing headers. (#626)
   * ID3: Upgrade ID3v2.2 PIC tags to ID3v2.4 APIC tags properly.
   * Tests exit with non-zero status if any have failed.
   * Full dict protocol support for VCommentDict, FileType, and APEv2 objects.

 * New features:
   * mutagen.oggvorbis gives pyvorbis a Mutagen-like API.
   * mutagen.easyid3 makes simple ID3 tag changes easier.
   * A brief TUTORIAL was added.

 * Tools:
   * mid3iconv, a clone of id3iconv, was added by Emfox Zhou. (#605)

1.1 - 2006.04.04
 * ID3:
  * Frame and Spec objects are not hashable.
  * COMM, USER: Accept non-ASCII (completely invalid) language codes.
  * Enable redundant data length bit for compressed frames.

1.0 - 2006.03.13
 * mutagen.FileType, an abstract container for tags and stream information.
 * MP3: A new FileType subclass for MPEG audio files.
 * FLAC:
  * Add FLAC#delete.
  * Raise correct exception when saving to a non-FLAC file.
  * FLAC#vc is deprecated in favor of FLAC#tags.
 * VComment (used by FLAC):
  * VComment#clear to clear all tags.
  * VComment#as_dict to return a dict of the tags.
 * ID3:
  * Fix typos in PRIV#_pprint, OWNE#_pprint, UFID#_pprint.
 * mutagen-pony: Try finding lengths as well as tags.
 * mutagen-inspect: Output stream information with tags.

0.9 - 2006.02.21
 * Initial release.
