mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-01 16:19:43 +02:00
316 lines
18 KiB
Plaintext
316 lines
18 KiB
Plaintext
$Id: HISTORY,v 1.1 2001-08-27 00:12:17 dmazzoni Exp $
|
|
|
|
ID3Lib History
|
|
|
|
The following is a history of id3lib up to version 3.05a. Please see the
|
|
NEWS file for changes since then.
|
|
|
|
23 Nov 1998 3.05a - Released 3.05a in which the only change was the
|
|
inclusion of a C header file for using the DLL
|
|
(how forgetful I am!).
|
|
|
|
22 Nov 1998 3.05 - Released 3.05 and the DLL.
|
|
|
|
8 Nov 1998 3.05 - Finished the first revision of the DLL. Interesting
|
|
stuff. Contains both C++ class and C functions (the
|
|
C++ classes that are exported to the DLL are Tag,
|
|
Frame, Field and Error).
|
|
- Took out the SetVersion function from the ID3_Tag
|
|
class. This is because I no longer wish ID3Lib to be
|
|
able to create the old ID3v2-2.0 tags. ID3Lib will
|
|
always create the latest version tags it is capable
|
|
of creating.
|
|
|
|
1 Nov 1998 3.05 - Removed the encryption and grouping stuff. I have a
|
|
lot to do before I finish that section and I might
|
|
end up implementing it differently, so I thought it
|
|
best to remove it before people started using it
|
|
(no-one should since it wasn't fully functional
|
|
anyway).
|
|
|
|
13 Oct 1998 3.05 - Work has begun on the Windows DLL.
|
|
|
|
9 Oct 1998 3.04 - Added the text list handling functions from 2.16, but
|
|
they are slightly different under 3.xx.
|
|
- Also added a Size() function for fields which
|
|
applications can use to allocate buffers and so on.
|
|
- Work has progressed on the encryption and grouping
|
|
side of things, but nothing usable by an application
|
|
just yet.
|
|
|
|
5 Oct 1998 3.04 - Changed the ID3_AddHandler() function to include a
|
|
parameter which specifies the factor by which the
|
|
size of the frame may increase as a result of
|
|
encryption or encoding. This is used for buffer and
|
|
size estimates.
|
|
|
|
3 Oct 1998 3.03a - Fixed a small Unicode BOM bug.
|
|
|
|
2 Oct 1998 3.03 - Added very minimal and not-totally-functional support
|
|
for the automatic handling of encryption and
|
|
grouping.
|
|
- Added a function to ID3_Tag which makes attaching
|
|
arrays of ID3_Frame objects easy.
|
|
|
|
1 Oct 1998 3.03 - Yesterday, ID3v2-3.0 became an informal standard.
|
|
Due to this, ID3Lib now does not create ID3v2-3.0
|
|
tags with the EXPERIMENTAL bit set.
|
|
|
|
30 Sep 1998 3.02 - Expanded the error handling class to include
|
|
functions which return the ID3Lib source file and
|
|
line number of the exception. This is useful for
|
|
debugging and generating bug reports (hint, hint).
|
|
|
|
28 Sep 1998 3.02 - Added the grouping registration and encryption
|
|
registration frames. Also added support for parsing
|
|
and rendering frames with the grouping and encryption
|
|
symbols, although currently this data is ignored. I
|
|
plan to implement call backs to handle the encryption
|
|
and decryption of data. Also, there is currently no
|
|
checking at render-time that all frames which have
|
|
these symbols also have a corresponding rego frame.
|
|
|
|
26 Sep 1998 3.02 - Changed the 'tag changed' stuff so that calls to
|
|
ID3_Tag::SetVersion(), ID3_Tag::SetCompression() etc
|
|
now constitute a change in the tag. This is because
|
|
of the relaxed restrictions on the calls to these
|
|
functions before rendering/updating. - Fixed a bug
|
|
in the ID3_Tag::Link() command.
|
|
|
|
25 Sep 1998 3.01 - Added the ID3_Tag::RemoveFrame() function.
|
|
- Added the ID3_Tag::SetExtendedHeader() function, even
|
|
though this setting is currently ignored.
|
|
- Added luint return type to the Field::Get() functions
|
|
for ASCII and Unicode strings. These functions now
|
|
return how many characters (not bytes necessarily) of
|
|
the supplied buffer were used, not including the
|
|
NULL-termination.
|
|
- Added the 'unique file identifier' frame which I
|
|
omitted from 3.00 but was present in 2.xx.
|
|
- Added code that allows ID3Lib and applications to
|
|
track whether a tag has been altered since the last
|
|
parse or render.
|
|
- Slightly altered the padding strategy when a tag
|
|
shrinks in size.
|
|
- No more requirements on when ID3_Tag::SetVersion()
|
|
etc must be called, except that they should be called
|
|
prior to an update or render if you plan to use
|
|
different settings than the defaults.
|
|
|
|
21 Sep 1998 3.00 - Released 3.00
|
|
|
|
15 Sep 1998 3.00 - Added support for parsing and converting ID3v1/1.1
|
|
and Lyrics3 v2.0 tags and CDM frames from 2.01
|
|
experimental tags. Also parses Unicode now.
|
|
|
|
9 Sep 1998 3.00 - Work almost done on 3.00. A little bit to fix up in
|
|
the parsing department (doesn't parse Unicode yet, or
|
|
CDMs from the old 2.01 draft). Then just add
|
|
validity checking and support for most of the frames.
|
|
|
|
2 Sep 1998 2.16 - Small Unicode string parsing bug fixed.
|
|
|
|
25 Aug 1998 2.15 - Small bug fixes in the tag parsing routines.
|
|
- Completely removed support for creating extended
|
|
headers, and ID3Lib will now ignore tags which have
|
|
the EXTENDEDHEADER bit set (as under 2.00, this bit
|
|
isn't defined).
|
|
|
|
24 Aug 1998 2.14 - Small bug fixes in the example file 'convert.cpp'.
|
|
- ID3Lib now sets the EXPERIMENTAL bit in the tag
|
|
header.
|
|
|
|
13 Aug 1998 2.13 - As of 2.13, ID3Lib now comes in two flavours. The
|
|
first is the normal distribution as we have come to
|
|
know and love. The second is a machine-specific
|
|
archive which contains the static link libraries.
|
|
Currently, you can get Win32 link libraries.
|
|
|
|
12 Aug 1998 2.12 - As of 2.12, the ID3Lib distribution will contain
|
|
precompiled static libraries for Visual C++ and
|
|
eventually for Linux i386. The MSVC static libs are
|
|
be compiled for the multi-threaded run-time library
|
|
and there will be one for debugging and one normal
|
|
one for release-quality applications.
|
|
|
|
- Fixed a small exclusion in the 'id3_support.h' file.
|
|
It now contains a #include for the 'wchar.h' header
|
|
file. The absence of this line resulted in some
|
|
applications producing compilation errors if they
|
|
didn't already include it or 'stdio.h'.
|
|
|
|
11 Aug 1998 2.12 - I created a small problem in 2.11 where the name of
|
|
the URL field in the 'ID3FID_WWWUSER' frame ('WXX')
|
|
was changed from ID3FN_URL to ID3FN_TEXT. This has
|
|
been fixed (is back to ID3FN_URL).
|
|
- When reading a binary tag, previous versions of
|
|
ID3Lib ignored the fact that some of the frames in
|
|
the tag may have been compressed, so when writing the
|
|
tag back out, those old frames were written without
|
|
compression. This is fixed so that all old frames
|
|
are written back out as they were read in, unless of
|
|
course you explicitly change the compression status
|
|
before rendering the new tag.
|
|
- Added the ID3C_SetSongSize and ID3C_GetSongSize
|
|
commands to the ID3_Tag class. These allow you to
|
|
tell ID3Lib how big (in bytes) the song file is to
|
|
which you intend attaching the tag. ID3Lib can then
|
|
work out how much padding the tag requires to
|
|
correctly make the entire resulting file fill an even
|
|
multiple of 2Kb.
|
|
- If the tag we are manipulating was read in as a
|
|
binary tag before we started playing with it, then
|
|
ID3Lib will record the size of tag before we started
|
|
fooling around with it. This way, the padding system
|
|
can pad the new tag out to the old size if the new
|
|
tag will still fit inside the old one. This makes
|
|
file manipulation much easier when writing tags to
|
|
existing song files. If it won't fit, then the new
|
|
tag will receive padding as per the 2K cluster
|
|
method. All this talk of padding only applies if the
|
|
tag's padding property is set to ID3PD_AUTOMATIC,
|
|
which it is by default.
|
|
|
|
10 Aug 1998 2.11 - Replaced ID3C_SetID and GetID with proper field
|
|
names, and the same with ID3C_SetComp and GetComp.
|
|
This requires a change in source code for the
|
|
application. Without quotes, do a search and
|
|
replace...
|
|
|
|
"ID3C_SetID," replace with "ID3C_Set, ID3FN_ID,"
|
|
"ID3C_GetID," replace with "ID3C_Get, ID3FN_ID,"
|
|
"ID3C_SetComp," replace with "ID3C_Set, ID3FN_COMPRESSED,"
|
|
"ID3C_GetComp," replace with "ID3C_Get, ID3FN_COMPRESSED,"
|
|
|
|
- Thanks to a suggestion by Ilana Rudnik, I added a
|
|
generic frame type called 'ID3FID_UNSUPPORTED' which
|
|
is only to be used by applications as a
|
|
'place-holder' in lists and arrays while waiting for
|
|
ID3Lib to support all the frames.
|
|
|
|
6 Aug 1998 2.11 - Created the ID3C_Locate and ID3C_GetNumFrames
|
|
commands.
|
|
- Made the documentation an HTML file instead of boring
|
|
text.
|
|
|
|
5 Aug 1998 2.11 - Thanks to Eng-Keong Lee, I have located and fixed a
|
|
bug which most-of-the-time caused a crash when
|
|
performing an ID3C_SetID on a frame for the first
|
|
time.
|
|
|
|
3 Aug 1998 2.10 - Fixed a few things to make ID3Lib compile completely
|
|
cleanly under Linux - thanks to Carlos Puchol for
|
|
finding the remaining hassles.
|
|
- Added two commands to adjust the unsync facility -
|
|
ID3C_SetUnsync and ID3C_GetUnsync. The default is
|
|
ID3SY_AUTOMATIC.
|
|
- Add support for the 2.01 extended tag header. By
|
|
default, ID3Lib will NOT write an extended header to
|
|
tags it creates. This can be adjusted by the
|
|
ID3C_SetExtHeader command.
|
|
- Changed the directory structure so that the required
|
|
zlib source is now in the same directory as the
|
|
ID3Lib source.
|
|
|
|
2 Aug 1998 2.10 - Fixed a small memory leak which occurred when
|
|
clearing a tag of frames which were read in from an
|
|
external binary tag.
|
|
- Added a 'bugreport.txt' file to the documentation to
|
|
improve effectiveness of bug reporting.
|
|
|
|
1 Aug 1998 2.10 - Adding support for tag padding. This results in two
|
|
new commands which operate on ID3_Tag objects:
|
|
ID3C_SetPadding and ID3C_GetPadding.
|
|
|
|
1 Aug 1998 2.09 - Fixed some bugs in the ID3C_ToFile and ID3C_FromFile
|
|
commands.
|
|
- Fixed a bug which prevented empty strings which were
|
|
supposed to be NULL-terminated from doing so.
|
|
|
|
31 Jul 1998 2.09 - Changed the functionality of the error handling
|
|
mechanism. The function interface to the error
|
|
handler has changed - see the example source file
|
|
'main.cpp' for details.
|
|
- Improved frame verification somewhat.
|
|
|
|
28 July 1998 2.08 - Added ID3C_ToFile command to binary fields.
|
|
- Changed the format of the ID3C_Size command when
|
|
applied to frames. There is now a required second
|
|
parameter which specifies which field you require the
|
|
size of. If you request ID3FN_ALL, you will get the
|
|
size of the frame itself.
|
|
- The above change for ID3C_Size now also applies to
|
|
the ID3C_Clear command (again, only when applied to
|
|
frames).
|
|
- Enhanced the ID3C_Find command so as to allow
|
|
searches based on the ID3FN_LANGUAGE field and the
|
|
ID3FN_DESCRIPTION field.
|
|
|
|
27 July 1998 2.07 - Fixed a bug which had the WXX and TXX frames
|
|
including a language field which they shouldn't.
|
|
- Fixed a bug in the string's ID3C_Get command which
|
|
wrongly interpreted the presence of a '/' symbol in
|
|
the string as meaning that the string was a textlist.
|
|
|
|
21 July 1998 2.06 - Added support for frame compression via zlib. This
|
|
means that all frames have an extra attribute which
|
|
specifies whether the frame should be compressed.
|
|
- Changed some typedefs and macro names so as not to
|
|
clash with some of Windows' pre-defined
|
|
datatypes/names. Thanks to Chuck Zenkus for finding
|
|
this.
|
|
|
|
14 July 1998 2.05 - Finished up Unicode support. All internal string
|
|
handling is done with Unicode strings. Strings are
|
|
converted as needed during rendering of the tag.
|
|
|
|
6 July 1998 2.05 - BINARY fields now support an 'ID3C_FromFile' command
|
|
which fills the field with data from the specified
|
|
file. The file is read and the contents placed in
|
|
the field immediately on the field encountering this
|
|
command.
|
|
|
|
2 July 1998 2.04 - Improved support for frame validation.
|
|
- Repaired a cool bug in the error handling which
|
|
prevented an application from finding further
|
|
information about the error. This fix resulted in a
|
|
new format for the application error handler
|
|
function.
|
|
|
|
2.03 - Added support for the ID3C_Add, ID3C_Remove,
|
|
ID3C_GetElement, ID3C_GetNumElements commands in the
|
|
STRING field type. This allows easy use of the text
|
|
lists as used in the 'TP1' frame.
|
|
|
|
- Improved error handling once more.
|
|
- Added support for the ID3C_Increment command in the
|
|
INT field type.
|
|
- Added support for the CNT, POP, GEO, TCO, TCR and UFI
|
|
frames.
|
|
- Added preliminary validation checking for frames to
|
|
ensure they meet the ID3v2 standard requirements.
|
|
Not fully implemented.
|
|
|
|
2.02 - Adjusted the '::Do()' function slightly - you can now
|
|
chain commands together. The last parameter to this
|
|
call must now always be 'ID3C_DONE'.
|
|
|
|
1 July 1998 2.01 - Added the 'ID3_IsTagHeader()' function and an
|
|
appropriately adjusted ID3C_Parse command.
|
|
|
|
30 June 1998 2.00 - First preliminary release of ID3Lib v2.00. Supports
|
|
lots of frames (even PIC). Lots of work still
|
|
needed.
|
|
|
|
25 June 1998 2.00 - Abandoned the v1.xx framework in favour of a more
|
|
versatile and expandable one. This required a major
|
|
re-write of most of the internals of the library as
|
|
well as changes to any applications using the
|
|
previous framework. The new framework is part of all
|
|
ID3Libs which are 2.xx.
|
|
|
|
23 June 1998 1.01 - Released v1.01 which added support for four new
|
|
frames. TXX, WXX, COM, ULT
|
|
|
|
21 June 1998 1.00 - Initial Release (v1.0)
|