| $Id: NEWS,v 1.27 2002/07/23 13:57:45 t1mpy Exp $ |
| |
| this file will not be updated anymore. Please go to http://sourceforge.net/news/?group_id=979 for the latest news |
| |
| Old News: |
| |
| 2001-09-08 Version 3.8.0pre2 |
| * ID3Lib maintainer has disappeared. Project maintenance taken over by existing |
| developers |
| * Many bug fixes -- mostly compilation problems -- more detailed info will be |
| provided in a later release. |
| |
| 2000-11-20 Version 3.8.0pre1 |
| |
| * First prerelease of 3.8.0 stable. |
| * Clean separation of interface and implementation to help ensure interface and |
| binary compatibility of future releases |
| * Completely revamped implementation of tag reading and writing |
| * Better debugging output in debug mode |
| * New documentation (much more still needed) |
| * Command-line options processing now more cross-platform |
| * Removed all exception handling |
| * Minor changes to public interface |
| * Use of std::string and other STL classes in implementation |
| * id3com source code removed from source distribution. It has moved to its own |
| project at http://sourceforge.net/projects/id3com |
| * Many more changes than can be mentioned here: see ChangeLog file |
| |
| 2000-09-07 Version 3.7.13 |
| |
| * id3com is broken; maintainer has disappeared; anyone care to fix it? |
| * Complete reimplementation of ID3_Field: cleaner, safer, faster, clearer, more |
| efficient |
| * Much more robust MusicMatch parsing |
| * Improved conversion from ID3v2 to ID3v1 |
| * Cleaner implementation of file processing |
| * Examples now use popt for command-line processing |
| * Improved portability for Macintosh |
| * Improved build process for platforms without popt or zlib |
| * New documentation about the MusicMatch tagging format |
| * Minor updates to ID3_Field interface |
| * New interface behavior: |
| // copies entire string (same for unicode_t*) |
| size_t ID3_Field::Get(const uchar*, size_t) |
| // for lists, copies a specific item in string (0-based) |
| size_t ID3_Field::Get(const uchar*, size_t, index_t); |
| // returns the size in characters for strings, in bytes for all else |
| size_t ID3_Field::Size() cosnt; |
| // returns the rendered size of the field |
| size_t ID3_Field::BinSize() cosnt; |
| |
| 2000-07-07 Version 3.7.12 |
| |
| * Removed debugging output left over from 3.7.11 |
| * Update() now updates all tag types by default, not just ID3v2 |
| * Added a second, optional parameter to ID3_GetComment to find a comment with |
| a specific description |
| * Converting an ID3v1 comment to an ID3v2 COMM frame now has the description |
| "ID3v1 Comment" |
| * An ID3v2 COMM frame will only be converted to an ID3v1 comment if it has a |
| description of "ID3v1 Comment" |
| |
| 2000-07-05 Version 3.7.11 |
| |
| * Now parses and converts files with MusicMatch tags (beta - needs testing!) |
| * New tag type enums: ID3TT_LYRICS3, ID3TT_LYRICS3V2, ID3TT_MUSICMATCH, |
| ID3TT_PREPENDED, ID3TT_APPENDED. Deprecated ID3TT_LYRICS |
| * Improved file processing routines; cleaned up interface w.r.t. files |
| * Stripping one type of appended tag strips them all |
| * New C function: ID3Tag_HasTagType |
| * New methods for ID3_Tag: GetPrependedBytes(), GetAppendedBytes(), |
| GetFileSize(), and GetFileName() |
| * New function for calculating size of non-tag data in file: ID3_GetDataSize() |
| * Render now parameterized on ID3_TagType |
| * Bug fixes |
| |
| 2000-06-23 Version 3.7.10 |
| |
| * New and updated example tags |
| * Corrected unicode parsing and rendering |
| * Improved parsing/conversion of Lyrics3 v2.00 tags |
| * Fixed errors with exception handling (thanks to Luca Leonardo Scorcia for the |
| bug reports) |
| * Fixed bugs/memory leaks with removing frames and updating tag (thanks to Luca |
| Leonardo Scorcia for the bug reports) |
| * Fixed finding of frames with empty text fields (thanks to Luca Leonardo |
| Scorcia for the bug reports) |
| * Improved documentation/implementation for uint28 |
| * Added GetTextID() method for ID3_Frame objects |
| * Tag doesn't render if there aren't any frames; frame doesn't render if there |
| aren't any fields |
| * Reordered ID3_AddSyncLyrics() parameters for better consistency with other |
| helper functions |
| * ID3_GetSyncLyricsInfo() parameters updated to be more specific |
| * Several other minor bug fixes |
| |
| 2000-05-28 Version 3.7.9 |
| |
| * Added new test programs in examples/ for creating example tag files |
| * Further improvements to compile on (Unix) systems that don't have zlib |
| * Fixed a bug when parsing compressed frames (thanks to Christian Becker for |
| the bug report and example file) |
| * Fixed several bugs when writing to files (thanks to Lothar Egger and Peter |
| Thorstenson for the bug reports) |
| * New delphi example code for use with id3com (thanks Michael Little) |
| * Bugfixes for id3com (thanks John Adcock) |
| * Changed behavior of Link() and Clear() in ID3_Tag: Clear() doesn't remove |
| file reference, and Link'ing to an already-linked tag just changes the file |
| reference |
| * Cleaned up the class interfaces to use size_t, flags_t, and index_t rather |
| than luint, so as to be more descriptive |
| * ID3_Tag::RemoveFrame() now returns the pointer to the frame removed (NULL if |
| not present), thus releasing the tag from its repsonsibility of managing that |
| frame's memory |
| * Cleaned up C interface so that appropriate function parameters are const |
| * Cleaned up implementation of ID3_Tag::Clear() to fix inconsistencies |
| * Deprecated ID3_Tag's HasV2Tag(), HasV1Tag(), and HasLyrics() methods in |
| favor of ID3_Tag::HasTagType() method |
| * All Render() methods now const |
| * Added GetUnsync() method to ID3_Tag |
| * Cleaned up internal class definitions (thereby destroying binary |
| compatibility) |
| * ID3v2 tag now won't render (and its reported size is 0) if there aren't any |
| frames (per the spec) |
| * Fixed a bug when copying frames that prevented rendering compressed frames in |
| certain situations |
| * Fixed a bug with resyncing that caused it to improperly handle the last byte |
| * Fixed a bug with recognizing certain sync signals |
| * Lots of other minor changes |
| |
| 2000-05-11 Version 3.7.8 |
| |
| * Major bug fix that caused all string frames to be written out as unicode, yet |
| with the wrong encoding information given |
| * Bug fix for stripping id3v2 tags that wouldn't remove enough data |
| * Bug fix for writing id3v1 tags that might add extraneous data to the tag |
| |
| 2000-05-10 Version 3.7.7 |
| |
| * As part of the major rewrite of underlying codebase started with previous |
| release, this release features near-complete reimplementation of most of the |
| ID3v2 parsing code - smaller, faster, and better organized |
| * Much imporved Lyrics3 v2 tag support, along with much improved synchronized |
| lyrics (SYLT) support (thanks Severino Delaurenti) |
| * Updated id3com to reflect changes to compression strategy introduced in last |
| release (thanks John Adcock) |
| * Cleaned up the parameters to several functions/methods with regards to |
| constness |
| * Several new methods to several classes |
| * A variety of bugfixes |
| |
| 2000-05-03 Version 3.7.6 |
| |
| * Beginning of major rewrite of underlying codebase to improve efficiency, |
| expandability; the interface will need minor updates through this endeavor |
| (sorry!) |
| * Major bugfix in ID3_Tag::Strip which was deleting too much info from a file |
| in certain circumstances |
| * Add descriptions to frames; can access either through a ID3_Frame method for |
| a frame object, or via the static method on the class (w/ ID3_FrameID param) |
| (thanks John Adcock for descriptions, Daryl Pawluk for spotting misorder) |
| * Frame compression is determined frame by frame, so deprecated |
| ID3_Tag::SetCompression() for ID3_Frame::SetCompression(). |
| ID3_Tag::SetCompression() is now a no-op (updated C interface accordingly) |
| * New method ID3_Frame::Contains(ID3_FieldID) for determining if a frame |
| contains a particular field |
| * New static method ID3_Tag::IsV2Tag() deprecates ID3_IsTagHeader() |
| * Other minor bugfixes |
| |
| 2000-04-28 Version 3.7.5 |
| |
| * Fixed nasty bug with rewriting tags to windows files (thanks John Adcock) |
| * More fixes, improvements to id3com files (thanks John Adcock) |
| * Added parsing of Lyrics3 v1.00 tags (thanks Severino Delaurenti) |
| * Updated documentation, but still in flux |
| * Other minor bugfixes |
| |
| 2000-04-26 Version 3.7.4 |
| |
| * Fixed windows project files so that they all work correctly with new release |
| (thanks John Adcock, Robert Moon, and Lothar Egger) |
| * Added a simple VB app to test id3lib using id3com.dll (thanks John Adcock) |
| * Added better implementation of PRIV (Private) frame (thanks John Adcock) |
| * Fixed padding logic (thanks John Adcock) |
| * New "Spec Versioning" system under the hood produces minor interface change |
| - Defined new enum: ID3_V2Spec (ID3V2_2_0, ID3V2_2_1, ID3V2_3_0, etc.) |
| - {Get,Set}Spec now used in favor of deprected {Get,Set}Version, GetRevision |
| - Field definitions updated accordingly; now smaller and more exact |
| |
| 2000-04-24 Version 3.7.3 |
| |
| * C/C++ interface changes: |
| - Moved V1_LEN* constants into an enumeration so that they can be used as |
| array size initializers in C. Renamed the constants for consistency |
| (LEN_V1 -> ID3_V1_LEN, LEN_V1_TITLE -> ID3_V1_LEN_TITLE, etc.) |
| - Renamed ID3_TagType's enums to be more consistent with rest of library's |
| enums (V1_TAG -> ID3TT_ID3V1, V2_TAG -> ID3TT_ID3V2, etc.) |
| - ID3_Err enumeration now defines ID3E_NoError |
| * C++ interface changes: |
| - ID3_Frame now has a copy constructor |
| - ID3_Tag::AddNewFrame deprecated for AttachFrame (no other difference in |
| behavior) |
| - ID3_Tag::Link(char *, bool, bool) deprecated for |
| ID3_Tag::Link(char *, luint). Now accepts ID3_TagTypes to determine which |
| tags to parse. i.e, mytag.Link("myfile.mp3", ID3TT_ID3V2 | ID3TT_LYRICS); |
| - ID3_Tag::operator<<, ID3_Tag::AddFrame: relevant parameters now const |
| * C interface changes: |
| - ID3Tag_Parse, ID3Tag_Update, ID3Tag_Strip now return an ID3_Err |
| - Added functions ID3Tag_UpdateByTagType, ID3Frame_New, ID3Frame_NewID, |
| ID3Frame_Delete |
| * Implementation changes: |
| - AddFrame, AddFrames now add copies of the frames passed in. |
| - AttachFrame adds the actual frame passed to it. |
| - The tag takes responsibility for managing its frames' memory in all cases. |
| * Miscellaneous changes: |
| - Moved most enum and struct declarations to include/id3/globals.h so they |
| are accessible to C interface |
| - id3com.dsp file is 'fixed', but the project still doesn't compile w/o |
| errors |
| - Most doxygen comments moved from tag.h to respective files |
| - Fixed a bug in id3lib.spec which caused rpm binaries to be compiled without |
| exception handling |
| - examples, include/id3/* header files no longer include config.h |
| - Other minor bugfixes |
| |
| 2000-04-21 Version 3.7.2 |
| |
| * Implementation of C interface for all platforms (in src/c_wrapper.cpp, which |
| replaces dll_wrapper.cpp) |
| * Added examples/demo_simple.c which demonstrates basic use of C interface |
| * Auto-generated documentation no longer shipped with main tarball distribution |
| * mp3 example files no longer included (still available via CVS) |
| * Updated Windows project files so that they'll (hopefully) compile cleanly |
| again |
| |
| 2000-04-19 Version 3.7.1 |
| |
| * Interface changed: functions in version.{h,cpp} replaced with constants |
| defined in globals.h |
| * Added a spec file for creating rpm's |
| * C interface now defined in include/id3.h, replaces include/src/dll.h; |
| * Lots of file movement. src/id3/* to src/; src/examples to examples; |
| * Examples now compiled as installable binaries, rather than 'checks' |
| * Removed unnecessary files: externals.h, types.h, version.{h,cpp}, dll.h |
| |
| 2000-04-15 Version 3.7.0 |
| |
| * New project management: MusicMatch handed reigns over to Scott Thomas Haug |
| * New project licensing: LGPL (http://www.gnu.org/copyleft/lesser.html) |
| * New versioning: 3.7.x is unstable series leading up to 3.8.x stable |
| * Many bug fixes |
| * Better windows compatibility, with new windows project files |
| * Improved documentation, using the Doxygen documentation system |
| (http://www.stack.nl/~dimitri/doxygen/) |
| * Extended API, improved implementation |
| * More supported frames |
| * Now parses and rerenders unrecognized frame types |
| * Better version handling in configuration files, similar to the glib library |
| (http://www.gtk.org) |
| |
| 1999-12-02 Version 3.6.2 |
| |
| * Improved portability: another minor portability fixes, along with the |
| inclusion of zlib sources and project files for windows compilation. |
| |
| 1999-12-01 Version 3.6.1 |
| |
| * Code movement: moved the header files from src/id3 to include/id3 to allow |
| for easier windows compilation. |
| * Improved portability: made changes in several files to improve compilation |
| on windows. (thanks to elrod for the fixes) |
| * Random cleanup: some spelling errors fixed, some minor file administration, |
| etc. |
| |
| 1999-11-30 Version 3.6.0 |
| |
| * Code overhaul: more descriptive variable naming, streamlined implementation |
| logic, cleaner interface specification, generalization of magic numbers and |
| strings. |
| * Better documentation: transcribed the the "Documentation for ID3Lib 3.05" |
| document (written by Dirk Mahoney, 22 Nov 1998) into the actual source, using |
| javadoc-like tags so as to create documentation with the application doc++. |
| Using this program (and ones like it) allows for creating the documentation |
| in many different formats, including html, texinfo, man, latex, and the like. |
| * Added functionality: Added additional functions for simplified access to |
| common tags, such as artist, title, and album. |
| * More robust error checking: Improved upon the exception handling already in |
| place to better handle error conditions, such as invalid tags, unrecognized |
| frames, and the like. Work is still needed to ensure the library can handle |
| error situations gracefully. |
| * Improved portability: restructured the code into a GNU-like directory. |
| hierarchy. By making use of the GNU tools automake and autoconf, a wide |
| variety of platforms can be easily supported. This allows for a standard |
| "./configure; make; make install" installation process, as well as an |
| equally trivial method for uninstallation: "make uninstall". Likewise, |
| "make check" builds the example applications (see below). |
| * Enhanced examples: the src/examples/ subdirectory has both new and improved |
| examples demonstrating how to make use of id3lib. The original "id3convert" |
| example now can convert both ways between id3v1 and id3v2 tags, as well as |
| strip both types of tags off of files via command-line switches. |
| Additionally, an "id3info" app has been added for displaying id3v1/v2 tag |
| information about a file. |
| * Bug fixing: Fixes, fixes, and more fixes. A continual process. |
| * The zlib library files were removed from the project. The need for zlib |
| was instead made a requirement through the configuration process via autoconf |
| and automake. |
| * All of the id3lib library files were renamed by removing the "id3_" prefix. |
| Instead, the library files were placed in an id3 subdirectory in the src |
| directory. Likewise, when the library is installed on a system, an "id3" |
| subdirectory is created in the indicated include directory, and the header |
| files are placed there. Pragmatically, this means that code that makes use |
| of id3lib needs to "#include <id3/tag.h>" rather than "#include <id3_tag.h>". |
| This was done to create more structure and to avoid clutter in the include |
| directory. |
| * The versioning strategy has been updated to be more in line with the |
| "libtool" way. However, in order to be more compatible with how versions |
| progressed previously, I've taken the approach that many other libraries have |
| taken: I've "massaged" the version:revision:age numbers so that the resulting |
| compiled library shows up as id3lib.so.3.6.0 (or whatever the current release |
| is). This is /strongly/ advised against in the libtool documentation, so I'm |
| considering going to a more "traditional" libtool versioning approach (see |
| the libtool info page for more information). |
| |
| There is yet much to do! Please see the TODO file for known bugs and lacking |
| features... |