mirror of
https://github.com/cookiengineer/audacity
synced 2026-01-12 07:35:51 +01:00
Move library tree where it belongs
This commit is contained in:
315
lib-src/id3lib/NEWS
Normal file
315
lib-src/id3lib/NEWS
Normal file
@@ -0,0 +1,315 @@
|
||||
$Id: NEWS,v 1.1 2001-08-27 00:13:26 dmazzoni Exp $
|
||||
|
||||
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...
|
||||
Reference in New Issue
Block a user