TagLib 1.9.1 (Oct 8, 2013)
==========================
* Fixed binary incompatible change in TagLib::Map and TagLib::List.
* Fixed constructing String from ByteVector.
* Fixed compilation on MSVC with the /Zc:wchar_t- option.
* Fixed detecting of RIFF files with invalid chunk sizes.
* Added TagLib::MP4::PropertyMap::codec().
TagLib 1.9 (Oct 6, 2013)
========================
* Added support for the Ogg Opus file format.
* Added support for INFO tags in WAV files.
* Changed FileStream to use Windows file API.
* Included taglib-config.cmd script for Windows.
* New ID3v1::Tag methods for working directly with genre numbers.
* New MPEG::File methods for checking which tags are saved in the file.
* Added support for the PropertyMap API to ASF and MP4 files.
* Added MusicBrainz identifiers to the PropertyMap API.
* Allowed reading of MP4 cover art without an explicitly specified format.
* Better parsing of corrupted FLAC files.
* Fixed saving of PropertyMap comments without description into ID3v2 tags.
* Fixed crash when parsing certain XM files.
* Fixed compilation of unit test with clang.
* Better handling of files that can't be open or have read-only permissions.
* Improved atomic reference counting.
* New hookable API for debug messages.
* More complete Windows install instructions.
* Many smaller bug fixes and performance improvements.
Changes in 1.8 final:
Added support for OWNE ID3 frames.
Changed key validation in the new PropertyMap API.
ID3v1::Tag::setStringHandler will no londer delete the previous
handler, the caller is responsible for this.
File objects will also no longer delete the passed IOStream
objects. It should be done in the caller code after the File
object is no longer used.
Added ID3v2::Tag::setLatin1StringHandler for custom handling
of latin1-encoded text in ID3v2 frames.
Fixed validation of ID3v2 frame IDs (IDs with
Changes in 1.8 beta:
New API for accessing tags by name.
New abstract I/O stream layer to allow custom I/O handlers.
Support for writing ID3v2.3 tags.
Support for various module file formats (MOD, S3M, IT, XM).
Support for MP4 and ASF is now enabled by default.
Started using atomic int operations for reference counting.
Added methods for checking if WMA and MP4 files are DRM-protected.
Added taglib_free to the C bindings.
New method to allow removing pictures from FLAC files.
Support for reading audio properties from ALAC and Musepack
SV8 files.
Added replay-gain information to Musepack audio properties.
Support for APEv2 binary tags.
Many AudioProperties subclasses now provide information about
the total number of samples.
Various small bug fixes.
Manually increase shlib minor in CMake files since upstream
didn't react to my question why it went down with this release.
TagLib 1.7 (Mar 11, 2011)
=========================
1.7:
* Fixed memory leaks in the FLAC file format parser.
* Fixed bitrate calculation for WAV files.
1.7 RC1:
* Support for reading/writing tags from Monkey's Audio files. (BUG:210404)
* Support for reading/writing embedded pictures from WMA files.
* Support for reading/writing embedded pictures from FLAC files (BUG:218696).
* Implemented APE::Tag::isEmpty() to check for all APE tags, not just the
basic ones.
* Added reading of WAV audio length. (BUG:116033)
* Exposed FLAC MD5 signature of the uncompressed audio stream via
FLAC::Properties::signature(). (BUG:160172)
* Added function ByteVector::toHex() for hex-encoding of byte vectors.
* WavPack reader now tries to get the audio length by finding the final
block, if the header doesn't have the information. (BUG:258016)
* Fixed a memory leak in the ID3v2.2 PIC frame parser. (BUG:257007)
* Fixed writing of RIFF files with even chunk sizes. (BUG:243954)
* Fixed compilation on MSVC 2010.
* Removed support for building using autoconf/automake.
* API docs can be now built using "make docs".
Remove special wchar handling. It's not clear for which OS versions
this is needed, exactly.
If this change causes failures, let me know!
Bump PKGREVISION.
TagLib 1.6.3 (Apr 17, 2010)
===========================
* Fixed definitions of the TAGLIB_WITH_MP4 and TAGLIB_WITH_ASF macros.
* Fixed upgrading of ID3v2.3 genre frame with ID3v1 code 0 (Blues).
* New method `int String::toInt(bool *ok)` which can return whether the
conversion to a number was successfull.
* Fixed parsing of incorrectly written lengths in ID3v2 (affects mainly
compressed frames). (BUG:231075)
TagLib 1.6.2 (Apr 9, 2010)
==========================
* Read Vorbis Comments from the first FLAC metadata block, if there are
multipe ones. (BUG:211089)
* Fixed a memory leak in FileRef's OGA format detection.
* Fixed compilation with the Sun Studio compiler. (BUG:215225)
* Handle WM/TrackNumber attributes with DWORD content in WMA files.
(BUG:218526)
* More strict check if something is a valid MP4 file. (BUG:216819)
* Correctly save MP4 int-pair atoms with flags set to 0.
* Fixed compilation of the test runner on Windows.
* Store ASF attributes larger than 64k in the metadata library object.
* Ignore trailing non-data atoms when parsing MP4 covr atoms.
* Don't upgrade ID3v2.2 frame TDA to TDRC. (BUG:228968)
TagLib 1.6.1 (Oct 31, 2009)
===========================
* Better detection of the audio codec of .oga files in FileRef.
* Fixed saving of Vorbis comments to Ogg FLAC files. TagLib tried to
include the Vorbis framing bit, which is only correct for Ogg Vorbis.
* Public symbols now have explicitly set visibility to "default" on GCC.
* Added missing exports for static ID3v1 functions.
* Fixed a typo in taglib_c.pc
* Fixed a failing test on ppc64.
* Support for binary 'covr' atom in MP4 files. TagLib 1.6 treated them
as text atoms, which corrupted them in some cases.
* Fixed ID3v1-style genre to string conversion in MP4 files.
1.6:
* New CMake option to build a static version - ENABLE_STATIC.
* Added support for disabling dllimport/dllexport on Windows using the
TAGLIB_STATIC macro.
* Support for parsing the obsolete 'gnre' MP4 atom.
* New cpp macros TAGLIB_WITH_MP4 and TAGLIB_WITH_ASF to determin if
TagLib was built with MP4/ASF support.
1.6 RC1:
* Split Ogg packets larger than 64k into multiple pages. (BUG:171957)
* TagLib can now use FLAC padding block. (BUG:107659)
* ID3v2.2 frames are now not incorrectly saved. (BUG:176373)
* Support for ID3v2.2 PIC frames. (BUG:167786)
* Fixed a bug in ByteVectorList::split().
* XiphComment::year() now falls back to YEAR if DATE doesn't exist
and XiphComment::year() falls back to TRACKNUM if TRACKNUMBER doesn't
exist. (BUG:144396)
* Improved ID3v2.3 genre parsing. (BUG:188578)
* Better checking of corrupted ID3v2 APIC data. (BUG:168382)
* Bitrate calculating using the Xing header now uses floating point
numbers. (BUG:172556)
* New TagLib::String method rfind().
* Added support for MP4 file format with iTunes-style metadata [optional].
* Added support for ASF (WMA) file format [optional].
* Fixed crash when saving a Locator APEv2 tag. (BUG:169810)
* Fixed a possible crash in the non-const version of String::operator[]
and in String::operator+=. (BUG:169389)
* Added support for PRIV ID3v2 frames.
* Empty ID3v2 genres are no longer treated as numeric ID3v1 genres.
* Added support for the POPM (rating/playcount) ID3v2 frame.
* Generic RIFF file format support:
* Support for AIFF files with ID3v2 tags.
* Support for WAV files with ID3v2 tags.
* Fixed crash on handling unsupported ID3v2 frames, e.g. on encrypted
frames. (BUG:161721)
* Fixed overflow while calculating bitrate of FLAC files with a very
high bitrate.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
pkgsrc change:
Fix installed .pc file to include rpath.
Changes from 1.4 to 1.5
* Support for Mac OS X and Microsoft Windows
* Distributed under the MPL (in addition to the previous LGPL license)
* Added support for Speex files
* Added support for TrueAudio files
* Added support for WavPack files
* Added support for ID3v2 general encapsulated object frames
* Added support for ID3v2 unsynchronized lyrics frames
* Added support for ID3v2 URL frames
* Propper exports of all public classes / functions
* Updated the APE::Item API to work with value lists
* Added support to the FileRef class for new Xiph (Ogg) extensions
* Made the samples per frame for MPEG headers accessible
* Made MP3 Xing headers accessible
* Prevent invalid encodings from being written to ID3v1 tags
* Non-Latin1 ID3v2 text frames are automatically converted to UTF-8 on
write (if they are not explicitly set to UTF-16)
* Added support for reading ID3v2.2/3 unsynchronized tags
* Made it possible to search for ID3v2 comment frames by description
* Fixed a number of bugs in ID3v2 relative volume adjustment reading and
writing
* Added work arounds for iTunes writing invalid ID3v2 frame lengths
* Added work arounds for iTunes not being able to correctly parse
numerical ID3v2 genres
* Added work arounds for iTunes putting non-text information in ID3v2
comment frames
* Added a function to export strings to std::wstring
* Added a function to check ASCII compatibility of strings
* Added a function to check Latin1 compatibility of strings
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
Approved by chris@.
Changes since last packaged version (1.3.1) as seen on taglib's homepage:
* Added a package-config file
* Added support for plugging in file type resolvers to make it easier to use
native mime type resolution systems and to add support for additional file
formats
* Fixed a memory leak in APE items
* Fixed a crash when requesting the text of an empty APE item
* Added a README noting the Ruby and Python bindings
* Added the ability to save mp3 tags using the save mask without discarding
those tags that are not part of the mask
* Fixed the misspelling of "A Cappella"
* Implemented support for the ID3v2 frame flag for discarding frames on tag
alteration
* Use the above flag for ID3v2 frames that are discarded because they are no
longer supported in ID3v2.4 (which TagLib uses). This allows for these tags
to still be handled by library users if desired
* Fix memory corruption (deleting a no longer valid iterator) when removing a
frame from an ID3v2 tag
* Make it possible to read and modify the descriptions of images in attached
picture frames of ID3v2 tags
* Introduced an argument for limiting the number of fields that will be
created usign ByteVectorList::split()
* Significantly unbroke the relative volume adjustment ID3v2 frame's API.
It now properly supports multiple volume fields in the same frame
* Added support for reading the comment portion of "Xiph" tags (used in Ogg
Vorbis and FLAC) from the "COMMENT" field rather than only from the
"DESCRIPTION" field mentioned in the spec
* Added support for Ogg FLAC v1.1.1
* Added prepend methods to the List<T> class
* Added support for UTF-16 little endian strings as used in some tagging
formats
* Fixed or implemented roughly 35 bug or wishlist items relative to 1.3.1
Changes between 1.3 and 1.3.1 are:
Fixed Ogg Vorbis length detection on AMD-64
Fixed crash on some invalid MP3s (regression from 1.2 to 1.3) where
corruped tags caused crashes or out of memory errors
Clear the ID3v1 track number when attempting to set it to a value greater
than 255 (8-bit value)
Fixed crash in invalid APE tags where the number of tag items didn't match
up with the number actually present
Added other additional sanity checks to the APE parsing code that should
make it more robust
Fixed Makefile problem that caused the apeitem.h header to not be
installed and made it impossible to use the APE API directly
Added support for APE tags
Added support for MPC files
Added support for APE tags in MP3 files
Added support for compressed ID3v2 frames
Added support for uniuque file identifier frames in ID3v2
Added checks for several potential divide by zero (SIGFPE) cases
Fixed support for custom text frames
Fixes PR 27061 (basically applied the patch in PR, but added the change to
buildlink3.mk and removed LIBTOOLIZE_PLIST option from Makefile.)
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
Changes from 1.1 to 1.2
New Features:
Add support for FLAC data in Ogg containers ("Ogg FLAC" files)
Added support for relative volume adjustment (RVA2) ID3v2 frames
Added support for attached picture (APIC) ID3v2 frames
Return a bool on File::save() to indicate success or failure
Implemented support for reading ID3v2 frame header flags
Return false from isValid() for FLAC files that are not parsed properly
Move the Vorbis classes into the Ogg namespace (binary and source
compatibility preserved)
Added a convenience function fo accessing a list of ID3v2 frames of a
certain ID using ID3v2::Tag::frameList(const ByteVector &frameID)
Add access to the ID3v1, ID3v2 and XiphComments of FLAC files to the
public API
ByteVector optimizations to speed up copying
Add find() and erase() methods to Map
Added iterators and index operators to the string class
Plays nicely with ID3v2.4 tags generated by libid3tag
Plus bug fixes
Changes from 1.0 to 1.1
Added ID3v2.2 support (previous support was for ID3v2.3 and ID3v2.4) since
iTunes seems to still use this very old version of the ID3v2 standard
Fixed an API bug in MPEG::File that made it difficult to override the
default frame factory
Make it possible to override the default string handler for ID3v1 tags.
This makes it possible for applications to provide decoders that work with
something other than ISO-8859-1 ID3v1 tags
Switch from passing around a bool indicating whether to use synch-safe ints
or not and pass the ID3v2 revion number. This is more flexible and general
purpose
Optimizations in the toolkit that make several ByteVector operations faster
(and speeds up tag parsing and rendering by about 20%)
Fixed rendering of UTF-16 in ID3v2 tags
Added FLAC support to the C API