ID3v2 Library Changelog

What's new in ID3v2 Library 2.0.90.210

Aug 8, 2022
  • Added ID3v2 compression support for Lazarus-FPC
  • Fixed ID3v2Library.pas compile with Lazarus-FPC

New in ID3v2 Library 2.0.79.188 (Mar 9, 2021)

  • Added 'TID3v2Tag.APICTextEncodingToWrite' that can be set to write UTF8, ANSI or unicode (default) APIC descriptions
  • Added 'TID3v2Tag.RewriteCoverArts()' to be used with above, re-set all APIC frame descriptions to the above set mode

New in ID3v2 Library 2.0.76.184 (Oct 1, 2020)

  • Speed-up with buffered streams when loading/saving much data.

New in ID3v2 Library 2.0.75.182 (Aug 3, 2020)

  • Fixed processing WAV and AIFF files with odd sized chunks

New in ID3v2 Library 2.0.74.180 (Jun 28, 2020)

  • Speed-up with buffered streams when loading/saving much data.

New in ID3v2 Library 2.0.70.176 (Jun 17, 2020)

  • MPEG detection now if finds an MPEG sync, tests if there is a next MPEG frame sync again at the calculated (where should be) position - MPEG detection should be a lot reliable now
  • Fixed building for OSX

New in ID3v2 Library 2.0.69.174 (Jun 17, 2020)

  • Speed-up with buffered streams when loading/saving much data
  • In buffered save mode, if new file needs to be created the tags are written with buffering and the rest of the file is copied non-buffered

New in ID3v2 Library 2.0.68.172 (Aug 19, 2019)

  • Added average bit rate reporting for VBR MPEG files.

New in ID3v2 Library 2.0.63.159 (Oct 21, 2018)

  • Added 'AlreadyParsed' variable for tags and there is a 'ReSetAlreadyParsedState' method
  • 'Frames' list is now a generic TList

New in ID3v2 Library 2.0.61.157 (Jun 6, 2018)

  • Fixed ID3v1 Lyrics tag size

New in ID3v2 Library 2.0.60.156 (May 4, 2018)

  • Fixed possible floating point division by zero for playtime.

New in ID3v2 Library 2.0.59.155 (Mar 21, 2018)

  • Fixed, added sanity check for DeleteFrame() so now should be compatible with previous implementations

New in ID3v2 Library 2.0.57.151 (Feb 28, 2018)

  • Fixed saving tags on NEXTGEN when the destination file needs to be re-created.

New in ID3v2 Library 2.0.35.85 (Nov 17, 2014)

  • Fixed reading UTF-8 TXXX frames.

New in ID3v2 Library 2.0.34.84 (Jun 30, 2014)

  • Fixed nextgen (Android/iOS) compile.

New in ID3v2 Library 2.0.32.82 (Jun 14, 2014)

  • Added TID3v2Tag.DSFInfo.BitRate property
  • Added TID3v2Tag.WAVInfo record
  • Added TID3v2Tag.MPEGInfo record
  • Added TID3v2Tag.AIFFInfo record
  • Added parsing of 'Xing', 'Info' and 'VBRI' information

New in ID3v2 Library 2.0.31.73 (Jun 11, 2014)

  • Added TID3v2Tag.DSFInfo class
  • Added TID3v2Tag.SourceFileType property

New in ID3v2 Library 2.0.30.72 (Jun 7, 2014)

  • Support of DSD .dsf audio files

New in ID3v2 Library 2.0.29.71 (May 16, 2014)

  • Added TID3v1Tag.Assign() function
  • Added TID3v1Tag.LoadFromMemory() function
  • Added TID3v2Tag.GetCoverPictureInfoPointer() function

New in ID3v2 Library 2.0.28.70 (Apr 23, 2014)

  • Added 'Position' property which reports tag's start position in the file

New in ID3v2 Library 2.0.28.69 (Apr 18, 2014)

  • Added checking of invalid WAV and RF64 files before saving the tag
  • Fixed writing ID3v2 tags in WAV RF64 files

New in ID3v2 Library 2.0.28.68 (Mar 24, 2014)

  • When saving ID3v2 tags and the new tag + padding is smaller then the existing tag, the tag is re-written with new padding and a little speed-up in ID3v2 tag writing.

New in ID3v2 Library 2.0.26.64 (Dec 9, 2013)

  • Fixed ID3v1 0s after the tag field values

New in ID3v2 Library 2.0.26.63 (Dec 5, 2013)

  • Fixed ID3v1 tag field values when their length is equal to max. length

New in ID3v2 Library 2.0.26.62 (Dec 2, 2013)

  • Fixed ID3v1 0s after the tag field values

New in ID3v2 Library 2.0.26.61 (Nov 16, 2013)

  • Fixed SetUserDefinedURLLink(), SetUserDefinedTextInformation() and SetPopularimeter() functions

New in ID3v2 Library 2.0.25.60 (Nov 9, 2013)

  • Fixed some functions to set the tag and fixed tutorial .exes

New in ID3v2 Library 2.0.24.59 (Nov 2, 2013)

  • Fixed returning ANSI field values with the system locale character set

New in ID3v2 Library 2.0.23.58 (Oct 31, 2013)

  • Added support for Delphi XE5 iOS and Android build target

New in ID3v2 Library 2.0.22.52 (Jul 8, 2013)

  • Added "ReturnNativeText" mode for function GetUnicodeText to return undecoded UTF8 fields
  • Fixed SaveToFile() return value if a file couldn't be opened

New in ID3v2 Library 2.0.21.51 (Jun 4, 2013)

  • Fixed reading tags endless loop when there is no zero ending character

New in ID3v2 Library 2.0.20.50 (May 29, 2013)

  • Fixed reading UTF8 tags

New in ID3v2 Library 2.0.19.47 (May 21, 2013)

  • Fixed function to get multiple values for Txxx frames
  • Fixed function to get multiple values for TXXX frames

New in ID3v2 Library 2.0.18.46 (May 20, 2013)

  • Added function to get/set multiple values for Txxx frames
  • Added function to get/set multiple values for TXXX frames
  • Fixed reading WAV and AIFF tags

New in ID3v2 Library 2.0.17.39 (Apr 20, 2013)

  • Added Lyrics3v2 loading/saving option to TID3v1Tag class
  • Added new ID3v2 function GetUnicodeCoverPictureInfo()

New in ID3v2 Library 2.0.16.38 (Mar 11, 2013)

  • Added support for writing frame encryption flag and byte and grouping flag and byte for ID3v2.3 tags

New in ID3v2 Library 2.0.10.26 (Apr 12, 2012)

  • Fixed writing corrupted tag when frame's data size was 0 (everything beyond the frame was lost)
  • Fixed remove ID3v2 tag function when theres wasn't a tag
  • Fixed removing ID3v2 tag leaving the previous file

New in ID3v2 Library 2.0.9.24 (Mar 6, 2012)

  • The URL managing functions are modified:
  • The GetUnicodeURL() and SetUnicodeURL() functions are to be used for official URL frames (WCOM, WCOP, etc.).
  • The old GetUnicodeURL() and SetUnicodeURL() is now called GetUnicodeUserDefinedURLLink() (for WXXX).
  • +Added functions for TXXX frames:
  • function FindCustomFrame(FrameID: AnsiString; Description: String): Integer;
  • function GetUnicodeUserDefinedTextInformation(FrameIndex: Integer; var Description: String): String;
  • function SetUnicodeUserDefinedTextInformation(FrameIndex: Integer; Description: String; Text: String): Boolean;
  • The 1. is to make things easier. Use FindCustomFrame() with a Description you are looking for and if there is such a frame it will give you an index to be used with GetUnicodeUserDefinedTextInformation() and SetUnicodeUserDefinedTextInformation().
  • Fixed geting unicode descriptions now are returned without a BOM
  • Added popularimeter functions
  • Added support for AIFC (compressed AIFF) files

New in ID3v2 Library 2.0.8.18 (Feb 28, 2012)

  • iTunes compatible reading-writing-removing for WAV and AIFF ID3v2 tags

New in ID3v2 Library 2.0.6.12 (Feb 11, 2012)

  • Fixed loading frames with set flags on Win64

New in ID3v2 Library 2.0.6.10 (Dec 5, 2011)

  • Fixed saving ID3v2 Tag to a locked file returns an error and no temporary files are left
  • A little clean up of saving code

New in ID3v2 Library 2.0.5.8 (Nov 7, 2011)

  • Fixed ID3v1 exception on an invalid genre
  • OSX support
  • FireMonkey example application

New in ID3v2 Library 2.0.4.7 (Nov 7, 2011)

  • ID3v2.3 with extended headers are read, but saved back without extended header
  • ID3v2.4 with extended headers are possibly read partially, but saved back without extended heade

New in ID3v2 Library 2.0.3.6 (Nov 7, 2011)

  • Fixed ID3v2 tag size with compressed frames

New in ID3v2 Library 2.0.3.5 (Nov 7, 2011)

  • Moved RemoveTag() to a separate function (no need for an object) new name ID3v2RemoveTag() and ID3v1RemoveTag()

New in ID3v2 Library 2.0.3.4 (Nov 7, 2011)

  • Fixed when trying saving not supported ID3v2 tag version an ID3V2LIBRARY_ERROR_NOT_SUPPORTED_VERSION is given back
  • RemoveTag is more compatible, supports removing ID3v2.2 tag and all versions if they obey the specification

New in ID3v2 Library 2.0.3.3 (Nov 7, 2011)

  • Fixed when saving ID3v2.3 tag a false stream length value was written

New in ID3v2 Library 2.0.3.2 (Nov 7, 2011)

  • Fixed when loading an old ID3v2.2 tag doesn't fail but reports an ID3V2LIBRARY_ERROR_NOT_SUPPORTED_VERSION error