Permalink
Cannot retrieve contributors at this time
| .. _release-1.45.1: | |
| 1.45.1 - 2020-07-31 | |
| ------------------- | |
| * Fix flake8 tests when run after calling ``setup.py build`` :bug:`482` | |
| * No longer use mmap when rewriting files. Fixes slow save performance with Windows network shares, ZFS and more :pr:`483` :pr:`484` | |
| .. _release-1.45.0: | |
| 1.45.0 - 2020-07-11 | |
| ------------------- | |
| * WAVE support with ID3 tags :pr:`408` (:user:`Philipp Wolfer <phw>`, :user:`Borewit`) | |
| * DSDIFF support with ID3 tags :pr:`473` :pr:`472` (:user:`Philipp Wolfer <phw>`) | |
| * MP4: Add support for nero chapters :pr:`398` (:user:`Martin Weinelt <mweinelt>`) | |
| * wavpack: add support for wavpack DSD :pr:`464` (:user:`Timothy Redaelli <drizzt>`) | |
| * wavpack: add bits_per_sample :pr:`467` (:user:`Timothy Redaelli <drizzt>`) | |
| * MP4: handle DecoderSpecificInfo with wrong instance size :pr:`465` | |
| * docs: various fixes :pr:`461` (:user:`Terence Eden <edent>`), :pr:`474` (:user:`naglis`) | |
| * tests: depend on flake8 now (instead of pycodestyle and pyflakes) | |
| * docs: fix warnings with sphinx v3 | |
| Fuzzing related: | |
| * Fuzzing integration with `python-afl <https://github.com/jwilk/python-afl>`__ :pr:`449` | |
| * Fix various unhandled error cases in ogg, asf, oggvorbis, id3 :pr:`441`, :pr:`445`, :pr:`446`, :pr:`447`, :pr:`448`, :pr:`454` (:user:`Julien Voisin <jvoisin>`) | |
| * aac: Fix ZeroDivisionError in case frequency is unknown | |
| * musepack: handle truncated stream header | |
| * musepack: handle invalid sample rate index | |
| * musepack: handle duplicate RG/SH packets | |
| * oggtheora: handle truncated header packet | |
| * oggtheora: fail if FRN in the header packet is zero | |
| * oggtheora: handle empty pages in more cases | |
| * ogg: handle empty pages in to_packets() | |
| * aiff: handle overflow in read_float() :pr:`456` | |
| .. _release-1.43.1: | |
| 1.43.1 - 2020-07-11 | |
| ------------------- | |
| * Add pickle support for enum types :pr:`477` | |
| * docs: fix various warnings with sphinx v3 | |
| .. _release-1.44.0: | |
| 1.44.0 - 2020-02-10 | |
| ------------------- | |
| * Python 2 is no longer supported :bug:`410` | |
| * mp4: Fix some infinite loops in the mp4 parser :pr:`429` (:user:`Julien Voisin <jvoisin>`) | |
| * flac: Fix pickle support for SeekPoint :pr:`428` (:user:`point-source`) | |
| * aiff: Fix a division by zero :pr:`431` (:user:`Julien Voisin <jvoisin>`) | |
| * asf: Catch a MemoryError :pr:`432` (:user:`Julien Voisin <jvoisin>`) | |
| * oggtheora: Fix a division by zero :pr:`430` (:user:`Julien Voisin <jvoisin>`) | |
| .. _release-1.43.0: | |
| 1.43.0 - 2019-11-17 | |
| ------------------- | |
| * **Note: 1.43.x might be the last version supporting Python 2** | |
| * Python 3.4 is no longer supported | |
| * Building requires 'setuptools' now, CLI tools depend on 'pkg_resources' | |
| * CLI tools are setuptools entry points now | |
| .. | |
| * Fix collections ABCs deprecation warning :pr:`371` (:user:`Ken Sato <ksato9700>`) | |
| * Minor typo fixes :pr:`375` (:user:`Nicholas Chammas <nchammas>`) | |
| * MP3: increase max initial wrong syncs from 1000 to 1500 :pr:`376` (:user:`Hamid Alaei Varnosfaderani <halaei>`) | |
| * FLAC: support files with multiple VORBIS_COMMENT blocks like libflac :pr:`378` | |
| * ID3: Improved TYER/TDAT/TIME upgrade to TDRC :pr:`385` | |
| * MP4: Add support for iTunes HD Video tag (hdvd) :pr:`386` (:user:`Jay Sandhu <JaySandhu>`) | |
| * Add AC3 file type :pr:`400` (:user:`Philipp Wolfer <phw>`) | |
| * AIFF: renamed sample_size to bits_per_sample (sample_size still works) :pr:`403` (:user:`Philipp Wolfer <phw>`) | |
| * API doc fixes :pr:`404` :pr:`407` (:user:`Philipp Wolfer <phw>`) | |
| * Add support for Tom's lossless Audio Kompressor (TAK) :pr:`405` (:user:`Philipp Wolfer <phw>`) | |
| * OptimFROG: support encoder version >= 5.100 :pr:`406` (:user:`Philipp Wolfer <phw>`) | |
| * AIFF: Fix handling of padding bytes, safe chunk manipulation :pr:`409` (:user:`Philipp Wolfer <phw>`) | |
| * Fix typos :pr:`412` (:user:`Tim Gates <timgates42>`) | |
| .. _release-1.42.0: | |
| 1.42.0 - 2018-12-26 | |
| ------------------- | |
| * ID3: Always read id3v1 tags and include them when no id3v2 equivalent | |
| exists. Can be disabled with the new ``load_v1`` option, | |
| see :meth:`id3.ID3.load` | |
| :pr:`357` (:user:`Fredrik Strupe <frestr>`) | |
| * ID3: Add a pretty print implementation for SYLT | |
| :pr:`359` (:user:`Hamid Alaei Varnosfaderani <halaei>`) | |
| * vorbis: Improved error messages when validating keys/values | |
| :pr:`356` (:user:`Michael Booth <MJuddBooth>`) | |
| * Fix pylint warnings when using the various ``save()`` methods :pr:`364` | |
| .. _release-1.41.1: | |
| 1.41.1 - 2018-08-11 | |
| ------------------- | |
| * MP4: fix rtng, stik, shwm getting saved as 16bit ints instead of 8bit :bug:`349` | |
| .. _release-1.41.0: | |
| 1.41.0 - 2018-07-15 | |
| ------------------- | |
| * Documentation fixes :pr:`342` (:user:`Jakub Wilk <jwilk>`) | |
| * mid3v2: Add support for WXXX frames :bug:`344` :bug:`348` | |
| * Fix decoding of track_peak from MP3 Info Tag :pr:`345` | |
| (:user:`Anton Yuzhaninov <citrin>`) | |
| * MonkeysAudio: set bits_per_sample for older files :bug:`347` | |
| .. _release-1.40.0: | |
| 1.40.0 - 2018-01-25 | |
| ------------------- | |
| * APEv2: Ensures tags are saved in a deterministic way :pr:`329` | |
| (:user:`cushy007`) | |
| * Restore WinXP support for the CLI tools :bug:`332` | |
| * easymp4: Fix EasyMP4.add_tags() when no tags exist :bug:`334` | |
| * id3: Fix PyCharm not being able to resolve id3 frame class references | |
| :bug:`336` | |
| * Support pathlib.Path objects for paths (PEP 519) :bug:`337` :pr:`338` | |
| (:user:`Andrew Rabert <nvllsvm>`) | |
| * Use semver for versioning | |
| 1.39 - 2017-11-05 | |
| ----------------- | |
| * Tests: | |
| * Require `hypothesis <https://hypothesis.readthedocs.io>`__ | |
| * Run pycodestyle/pyflakes tests by default. Skip with ``--no-quality`` or | |
| ``-m no quality`` when using pytest directly. | |
| * Python 3.3 is no longer supported | |
| * MP3: Improved bitrate accuracy for files with XING header :bug:`328` | |
| (thanks :user:`Michaël Defferrard <mdeff>`) | |
| * ASF: Fix case where some tags resulted in broken ASFUnicodeAttribute | |
| instances :bug:`324` | |
| * Add support for filesystems which don't support opening files read/write | |
| (gvfs over fuse for example) :bug:`300` | |
| * mid3v2: Add support for USLT :bug:`306` | |
| * Minor improvements by :user:`Borewit` and | |
| :user:`Evan Purkhiser <EvanPurkhiser>` | |
| 1.38 - 2017-06-01 | |
| ----------------- | |
| * Note: New release tarballs are now hosted on github: | |
| https://github.com/quodlibet/mutagen/releases | |
| * ID3: | |
| * Add iTunes grouping frame `id3.GRP1` :bug:`304` | |
| * Fix exposing text frames where the text can't be encoded with the | |
| reported encoding due to merging of frames :bug:`307` | |
| * OGG: Fix wrong StreamInfo.length (small negative value) for all | |
| ogg based formats in rare cases. :bug:`308` | |
| 1.37 - 2017.02.24 | |
| ----------------- | |
| * Relicense "GPLv2" → "GPLv2 or later" :bug:`291` | |
| * DSF: add `mutagen.dsf` module for DSF (DSD Stream File) support | |
| :pr:`283` (Boris Pruessmann) | |
| * MP3: Add `mp3.MPEGInfo.encoder_settings` containing a guess of the encoder | |
| settings used, for example ``"-V2"`` for LAME :bug:`66` | |
| * ID3: add iTunes movement related frames `id3.MVIN` and `id3.MVNM` | |
| * MP4: support ``©mvi``, ``©mvc``, ``shwm``, ``stik``, ``rtng``, ``tves``, | |
| ``tvsn``, ``plID``, ``cnID``, ``geID``, ``atID``, ``sfID``, ``cmID``, | |
| ``akID`` :bug:`130` | |
| 1.36.3 - 2017.02.24 | |
| ------------------- | |
| * MP3: fix error with xing frames without a frame count :bug:`292` | |
| 1.36.2 - 2017.01.25 | |
| ------------------- | |
| * ID3: Always write little endian utf-16 with BOM. | |
| Fixes tests on big endian machines :pr:`289` | |
| 1.36.1 - 2017.01.22 | |
| ------------------- | |
| * Support GAE runtime :bug:`286` | |
| * FLAC: Fix crash when loading files with zero samples :bug:`287` | |
| * MP3: Handle broken lame tags written by older lame versions | |
| 1.36 - 2016.12.22 | |
| ----------------- | |
| * ID3: Ignore trailing empty values for v2.3 text frames :bug:`276` | |
| * ID3: Write large APIC frames last :bug:`278` | |
| * EasyID3: support saving as v2.3 :bug:`188` | |
| * FLAC: Add StreamInfo.bitrate :bug:`279` | |
| * mid3cp: Add ``--merge`` option :bug:`277` | |
| * MP4: Allow loading files without audio tracks :bug:`272` | |
| 1.35.1 - 2016.11.09 | |
| ------------------- | |
| * Revert back to distutils :bug:`273` | |
| 1.35 - 2016.11.02 | |
| ----------------- | |
| * Tests: Require pytest | |
| * Tools: Install .exe launchers on Windows | |
| * setup.py: Require setuptools | |
| * ID3: | |
| * Fix loading files with CRM frames :bug:`239` | |
| * Fix loading AENC, LINK, GRID frames with no payload | |
| * Merge duplicate text frames with same key on load :bug:`172` | |
| * Allow parsing of duplicate APIC frames :bug:`172` | |
| * Parse utf-16 text fields with missing BOM :bug:`267` | |
| * Increase max resyncs for the mpeg frame search :bug:`268` | |
| 1.34.1 - 2016.08.13 | |
| ------------------- | |
| * ID3: Expose some internals again to make Picard (mostly) work again. | |
| * http://tickets.musicbrainz.org/browse/PICARD-833 | |
| * https://github.com/metabrainz/picard/pull/479 | |
| 1.34 - 2016.07.20 | |
| ----------------- | |
| * ID3: | |
| * Add `CTOC <id3.CTOC>` and `CHAP <id3.CHAP>` frames. New classes: | |
| `ID3Tags <id3.ID3Tags>`, `CTOCFlags <id3.CTOCFlags>`. :bug:`6` | |
| * Add `TCAT <id3.TCAT>`, `TKWD <id3.TKWD>`, `PCST <id3.PCST>` frames. | |
| :bug:`249` | |
| * Validate user provided LNK/LINK frameid. :bug:`242` | |
| * Add `RVAD <id3.RVAD>`, RVA frames | |
| * Add TST, TSA, TS2, TSP and TSC frames | |
| * Fix not writing optional fields when saving to v2.3 | |
| * Add default field values for all frames | |
| * Drop Python 2.6 support | |
| * EasyID3: Fix TXXX frame encoding when setting a non-latin1 encodable | |
| value after a latin1 one. :bug:`263` | |
| 1.33.2 - 2016.07.05 | |
| ------------------- | |
| * Fix loading of small ogg/apev2 files (1.33 regression) | |
| 1.33.1 - 2016.06.29 | |
| ------------------- | |
| * Fix Overeager deprecation warnings :bug:`261` | |
| 1.33 - 2016.06.29 | |
| ----------------- | |
| * FileType, Metadata: File-like object support :bug:`1` | |
| * mid3v2: Add APIC support. :bug:`47` | |
| * EasyID3: Fix handling of RVA2 frames with non-lowercase description | |
| :bug:`215` | |
| * mid3v2: Add UFID support. :bug:`234` | |
| * ID3: Include human-readable representation of the picture type in | |
| APIC._pprint() :bug:`244` | |
| * EasyID3: make albumartist use TPE2 and move performer to TXXX. :bug:`252` | |
| * ID3: id3.ID3TimeStamp comparator: check type :pr:`260` | |
| (Fabian Peter Hammerle) | |
| * setup.py: follow PEP440 for the development version | |
| * FileType/Metadata.load/save/delete no longer raise IOError or IOError | |
| subclasses. They only raise subclasses of MutagenError. | |
| 1.32 - 2016.05.02 | |
| ----------------- | |
| * Add basic SMF (Standard MIDI File) support (:mod:`mutagen.smf`) | |
| * FLAC: add ``audio/flac`` mime type. :bug:`235` | |
| * ASF: Fixed crash when object size is longer than the header and file length | |
| (Ben Ockmore) | |
| * ID3: Validate attributes set after frame creation :commit:`69368c31e00` | |
| (:user:`Daniel Plachotich <danpla>`) | |
| * MP4: validate values in ``__setitem__`` so things don't fail in save() | |
| :bug:`236` | |
| * tests: Fix SynchronizedTextSpec test on big-endian machines :bug:`247` | |
| (Daniel Plachotich) | |
| * ID3: do type checking in ``__setitem__`` :bug:`251` | |
| * Building the documentation now requires sphinx >= 1.3 | |
| * New :class:`mutagen.Tags` base class for tags | |
| * Moved from Bitbucket to GitHub | |
| 1.31 - 2015.09.10 | |
| ----------------- | |
| * New padding control API for flac/id3/mp4/asf/ogg/aiff and everything | |
| based on it, except oggflac :bug:`229` | |
| * Mutagen will now reduce padding on save if there is lots of it. | |
| * delete() will remove padding in addition to tags. | |
| * ASF: | |
| * Padding support :bug:`201` | |
| * Don't report negative lengths for some broken files | |
| * New :class:`asf.ASFInfo`.codec_type/codec_name/codec_description | |
| * Implement ASF.delete() | |
| * OGG: Padding support for Opus/Vorbis/Theora/Speex | |
| * M4A: Implementation removed. Every operation will raise. Use mp4 instead. | |
| * Tools: Support Unicode output under Windows :bug:`232` | |
| 1.30 - 2015.08.22 | |
| ----------------- | |
| * FLAC: | |
| * Fix :meth:`flac.FLAC.save` in case the source contained a too large | |
| (invalid but recovered) image block :bug:`226` | |
| * MP3: | |
| * Improved length and bitrate accuracy: | |
| * Read lame "Info" tags for improved bitrate/length accuracy | |
| * Use bytes info of VBRI headers for improved bitrate accuracy | |
| * Subtract encoder delay/padding from length for improved length accuracy | |
| (especially for short tracks) | |
| * Fix rare false identification of Xing headers :bug:`182` | |
| * New :class:`mp3.MPEGInfo`.encoder_info attribute containing the encoder | |
| name and version :bug:`66` | |
| * New :class:`mp3.MPEGInfo`.bitrate_mode attribute exposing if the file is | |
| VBR, ABR or CBR :bug:`24` :bug:`66` | |
| * New :class:`mp3.MPEGInfo`.channels attribute providing the channel count | |
| * New :class:`mp3.MPEGInfo`.track_gain/track_peak/album_gain values exposing | |
| the replaygain info provided by the lame header :bug:`36` | |
| * ID3: | |
| * New :class:`id3.PictureType` enum for the picture type used in APIC frames :bug:`222` | |
| * MP4: | |
| * Fix MP4FreeForm.__eq__ and MP4Cover.__eq__ when comparing with bytes | |
| :bug:`218` | |
| * Don't raise on :meth:`FileType.save` if there are no tags. :bug:`227` | |
| * Minor fixes: :bug:`228` | |
| 1.29 - 2015.05.09 | |
| ----------------- | |
| * mid3v2: Fix an error under Python 3 with files without tags :bug:`219` | |
| * mid3v2: Various Windows+Python2+Unicode fixes :bug:`214` | |
| * Don't emit warnings during loading (ID3Warning) :bug:`223` | |
| * py.test support | |
| 1.28 - 2015.03.06 | |
| ----------------- | |
| * Various minor fixes to make mutagen behave the same under Python3 as under | |
| Python2. | |
| * Update gpl text :bug:`205` | |
| * Documentation: Add example for how to create a new flac.Picture :bug:`209` | |
| * ID3: | |
| * Various error handling fixes (:bug:`110`, :bug:`211`, ...) | |
| * Don't hide ID3 loading errors with ID3FileType. | |
| * In case a synch safe marked frame isn't sync safe, only warn :bug:`210` | |
| * Removed PEDANTIC mode | |
| * Tools: | |
| * Add signal handling :bug:`170` | |
| * mid3cp: Make it work under Windows. | |
| * mutagen-inspect: Make it work under Windows+Python3 :bug:`216` | |
| * Support unicode file paths under Windows+Python2 :bug:`214` | |
| * Support file paths with invalid encoding under Unix+Python3. | |
| 1.27 - 2014.11.28 | |
| ----------------- | |
| * MP4: | |
| * New ``MP4Info.codec`` for identifying the contained audio codec | |
| e.g. ``"mp4a"``, ``"alac"``, ``"mp4a.40.2"``, ``"ac-3"`` etc. | |
| :commit:`b2f22b81c77` | |
| * New ``MP4Info.codec_description``: name of the audio codec | |
| e.g. ``"ALAC"``, ``"AAC LC"``, ``"AC-3"`` | |
| * OggOpus: | |
| * Preserve data after vorbis comment ( | |
| See https://tools.ietf.org/html/draft-ietf-codec-oggopus-05#section-5.2) | |
| :bug:`202` | |
| * AAC: | |
| * New AAC FileType. Supports loading ADTS/ADIF AAC files. :bug:`15` | |
| 1.26 - 2014.11.10 | |
| ----------------- | |
| * MP4: | |
| * Parse channels/sample_rate/bits_per_sample/bitrate for ALAC files | |
| :bug:`199` :commit:`192cfcaf14` (Adrian Sampson, Christoph Reiter) | |
| * ASF: | |
| * Support writing multiple values for | |
| Author/Title/Copyright/Description/Rating :bug:`151` | |
| * Fix read order for multi value tags | |
| * Various Python3 fixes | |
| * EasyID3: Add more tag mappings :bug:`136` (Ben Ockmore) | |
| * MPC/SV8: Fix parsing of SH packets with padding :bug:`198` | |
| * docs: | |
| * New logo :commit:`b728fa75` (:user:`Samuel Messner <obskyr>`) | |
| * Add examples for handling cover art in vorbiscomment :bug:`200` | |
| * Add examples for id3v2.3 | |
| 1.25.1 - 2014.10.13 | |
| ------------------- | |
| * ID3: Fix parsing of some files with Python 3 :bug:`194` | |
| 1.25 - 2014.10.03 | |
| ----------------- | |
| * Python 3 support (Ben Ockmore et al) :bug:`27` | |
| Supported: Python 2.6, 2.7, 3.3, 3.4 (CPython and PyPy) | |
| * All custom exceptions now have a common mutagen.MutagenError base class | |
| * mutagen.File: prefer theora over vorbis/flac streams in ogg :bug:`184` | |
| * New mid3cp script for copying id3 tags :bug:`178` | |
| (Marcus Sundman, Ben Ockmore) | |
| * ID3: | |
| * Parse 2.3/4 frames with 2.2 names :bug:`177` | |
| * Try to detect apev2 tags when looking for id3v1 tags :bug:`122` | |
| * New id3.Encoding, id3.ID3v1SaveOptions enums :bug:`190` | |
| * ASF: | |
| * Raise a proper exception on invalid utf-16 :bug:`127` | |
| * APEv2: | |
| * Fix UnicodeDecodeError during parsing :bug:`174` | |
| * MP4: | |
| * Fix struct.error exception during parsing :bug:`119` | |
| * New AtomDataType enum for MP4FreeForm.dataformat values | |
| * Read some previously ignored purl/egit atoms | |
| * Read multi value reverse DNS tags written by foobar2000 | |
| * Read multi value atoms written by MusicBee :bug:`165` | |
| * Write back unknown atoms and ones that failed to parse. | |
| 1.24 - 2014.08.13 | |
| ----------------- | |
| * Moved to Bitbucket: https://bitbucket.org/lazka/mutagen | |
| * ID3: | |
| * Parse utf-16 text frames with wrong termination :bug:`169` | |
| * Fix parsing of utf-16 SYLT frames :bug:`173` | |
| * WavPack: | |
| * Fix length calculation if sample count is missing in the header :bug:`180` | |
| * setup.py: Don't install leftover files produced by the test suite :bug:`179` | |
| * tests: Fix error with POSIX locale :bug:`181` | |
| 1.23 - 2014.05.14 | |
| ----------------- | |
| * tools: Don't crash in misconfigured envs, fall back to utf-8. | |
| * mp3: Return correct mimetype for MP2 files. :bug:`163` | |
| * id3: deterministic sorting of frames. :bug:`166` | |
| * AIFF support :bug:`146` (Evan Purkhiser) | |
| 1.22 - 2013.09.08 | |
| ----------------- | |
| * Minimum required Python version is now 2.6 | |
| * Online API reference at https://mutagen.readthedocs.org/ | |
| * EasyID3: | |
| * Fix crash with empty TXXX values. :bug:`135` | |
| * ID3: | |
| * id3v2.3 writing support :bug:`85` | |
| * Add iTunes podcast frames (TGID, TDES, WFED) :bug:`141` | |
| * Updated id3v1 genre list | |
| * MP4: | |
| * add_tags() will not replace existing tags. :bug:`101` | |
| * Don't ignore tags if parsing unknown atoms fails. | |
| * Raise on invalid 64bit atom size :bug:`132` (Sidnei da Silva) | |
| * APEv2: | |
| * Handle invalid tag item count. :bug:`145` (Dawid Zamirski) | |
| * Ogg: | |
| * Faster parsing of files with large packets. | |
| * VComment: | |
| * Preserve text case for field names added through the dict interface | |
| :bug:`152` | |
| * mid3v2: | |
| * New -e,--escape switch to enable interpretation of escape sequences and | |
| makes escaping of the colon separator possible. :bug:`159` | |
| * mid3iconv: | |
| * Convert COMM frames :bug:`128` | |
| 1.21 - 2013.01.30 | |
| ----------------- | |
| * Fix Python 2.3 compatibility (broken in 1.19). | |
| * Fix many warnings triggered by -3. :bug:`27` | |
| * mid3v2: | |
| * Add --TXXX support. :bug:`62` (Tim Phipps) | |
| * Add --POPM support. :bug:`71` | |
| * Allow setting multiple COMM or TXXX frames with one command line. | |
| * FLAC: | |
| * Try to handle corrupt Vorbis comment block sizes. :bug:`52` | |
| * Try to handle corrupt Picture block sizes :bug:`106` (Christoph Reiter) | |
| * Don't leak file handle with PyPy :bug:`111` (Marien Zwart) | |
| * ID3: | |
| * MakeID3v1: Do not generate bad tags when given short dates. :bug:`69` | |
| * ParseID3v1: Parse short (< 128 byte) tags generated by old Mutagen | |
| implementations of MakeID3v1, and tags with garbage on the front. | |
| * pprint: Sort frames by name. | |
| * Upgrade unknown 2.3 frames :bug:`97` (Christoph Reiter) | |
| * Fix handling of invalid SYLT frames :bug:`105` (Christoph Reiter) | |
| * MP3: | |
| * Fix error when loading extremely small MP3s. :bug:`72` | |
| * Fix rounding error in CBR length calculation :bug:`93` (Christoph Reiter) | |
| * Use 'open' rather than 'file' everywhere. :bug:`74` (Dan Callahan) | |
| * mid3iconv: | |
| * Accurately copy QL-style frame encoding behavior. :bug:`75` | |
| * Skip unopenable files. :bug:`79` | |
| * ID3FileType: | |
| * Remember which tag type load() was called with even if the file | |
| doesn't yet have any ID3 tags. :bug:`89` | |
| * VComment: | |
| * Prevent MemoryError when parsing invalid header :bug:`112` | |
| (Jyrki Pulliainen) | |
| * ASF: | |
| * Don't corrupt files on the second save() call :bug:`81` (Christoph Reiter) | |
| * Always store GUID objects in the MetadataLibraryBlock :bug:`81` | |
| * OggTheora: Fix length/bitrate calculation. :bug:`99` (Christoph Reiter) | |
| * MP4: | |
| * Less strict MP4 covr atom parsing. :bug:`86` (Lukáš Lalinský) | |
| * Support atoms that extend to the end of the file. :bug:`109` | |
| (Sidnei da Silva) | |
| * Preserve freeform format flags :bug:`103` (Christoph Reiter) | |
| * OggOpus support. :bug:`115` (Christoph Reiter) | |
| * Musepack: | |
| * Fix SV7 bitrate calculation :bug:`7` (Christoph Reiter) | |
| * Support SV8 :bug:`7` (Christoph Reiter) | |
| 1.20 - 2010.08.04 | |
| ----------------- | |
| * ASF: Don't store blocks over 64K in the MetadataObject block; | |
| use the MetadataLibraryBlock instead. :bug:`60` (Lukáš Lalinský) | |
| * ID3: Faster parsing of files with lots of padding. :bug:`65` | |
| (Christoph Reiter) | |
| * FLAC: Correct check for audio data start. :bug:`67` | |
| 1.19 - 2010.02.18 | |
| ----------------- | |
| * ID3: | |
| * POPM: 'count' is optional; the attribute may not exist. :bug:`33` | |
| * TimeStampTextFrame: Fix a TypeError in unicode comparisons. :bug:`43` | |
| * MakeID3v1: Translate TYER into ID3v1 year if TDRC is not present. :bug:`42` | |
| * mid3v2: | |
| * Allow --delete followed by --frame, and --genre 1 --genre 2. :bug:`37` | |
| * Add --quiet and --verbose flags. :bug:`40` | |
| * moggsplit: --m3u option to write an M3U playlist of the new files. :bug:`39` | |
| * mid3iconv: Fix crash when processing TCML or TIPL frames. :bug:`41` | |
| * VCommentDict: Correctly normalize key names for .keys() iterator. :bug:`45` | |
| * MP3: Correct length calculation for MPEG-2 files. :bug:`46` | |
| * oggflac: Fix typo in docstring. :bug:`53` | |
| * EasyID3: Force UTF-8 encoding. :bug:`54` | |
| * EasyMP4: Fix 'genre' translation. :bug:`56` | |
| 1.18 - 2009.10.22 | |
| ----------------- | |
| * ASF: | |
| * Distinguish between empty and absent tag values in | |
| ContentDescriptionObjects. :bug:`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. :bug:`32` | |
| 1.17 - 2009.10.07 | |
| ----------------- | |
| * ID3: | |
| * Support for the iTunes non-standard TSO2 and TSOC frames. | |
| * Attempt to recover from bad SYLT frames. :bug:`2` | |
| * Attempt to recover from faulty extended header flags. :bug:`4` :bug:`21` | |
| * Fix a bug in ID3v2.4 footer flag detection, :bug:`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. :bug:`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. :bug:`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). :bug:`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-existent 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. |