mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-03 09:09:47 +02:00
315 lines
15 KiB
Plaintext
315 lines
15 KiB
Plaintext
$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... |