Release Name: 1.14
====================
Tag.pm: Quiet warnings from 5.22.
Start implementing handlers: instead of FRAM(langs)[opts], one can use, e.g., func_name(ID3v1,Cue)[arg1][arg2]
# ID3v2::_frame_select_by_descr is missing //s
New configuration variable ampersand_joiner (default '; ').
New method _auto_field_from() (abstracted from _auto_field()).
Change logic of calling ->can() in _auto_field_from().
_parse_rex_microinterpolate() would not update $ecount on seeing %%.
When parsing with %=c etc: with %==c the match fails if there is no comment.
(Checked the same way as for %{c:}.)
Support some of %-escapes not being matched (e.g, due to alternatives in a REx).
(0-length matches were ignored anyway [when join()ing].)
parse_rex(), parse_rex_match() may return an extra result (if %{handler}s are present).
Recognize ID3v2 frame names as [A-Z]{3}[A-Z\d] (was \w{4}).
(Detection frame/vs/handler happens via PACKAGES; so if lang codes inf/cue appear, we may be in trouble.)
Use the same code in parse(_rex)?_prepare. (Now parse() allows the same %-constructs as parse_rex().)
ID3v2.pm:
New method have_one_of_frames().
New methods *_have() (for simplest fields: title, comment, track, artist, album, genre, year).
ImageExifTool.pm:
Comprehensive docs.
Problems found with existing distfiles:
/pub/pkgsrc/distfiles/amp-0.7.6.tgz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-music-32000-1.0.8.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-music-48000-1.0.8.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-en-us-callie-32000-1.0.22.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-en-us-callie-48000-1.0.22.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-16000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-8000-1.0.12.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.13.tar.gz
/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.13.tar.gz
/pub/pkgsrc/distfiles/kid3-3.3.0.tar.gz
/pub/pkgsrc/distfiles/libdca-0.0.5.tar.bz2
/pub/pkgsrc/distfiles/mp3to.gz
/pub/pkgsrc/distfiles/squeezeboxserver-7.5.1-noCPAN.tgz
No changes made to these file.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
* Apply patches from Ian:
* ID3v2:add section BUGS with explanation of how we treat v2.4 frames.
extract MP3 start bytes even if ID3v2 tag is present.
recognize MP3 MIME type by start bytes
* Tag.pm:document mime_Pretype(), mime_type().
New optional arguments to mime_Pretype(), mime_type().
ID3v2 genre tag with value "Blues" or "(0)" could not be set
(thanks to Eric Benson for analysis).
* ID3v2_Data.pod: rename s/-/_/ - cygwin buggy, fails manifying
- this was BS, the problem is elsewhere
* mp3info2: state another time that COMM(eng)[lyrics] is a non-standard place
for lyrics...
* Updated documentation for MP3::Tag, MP3::Tag::ID3v1, MP3::Tag::ID3v2 and MP3::Tag::ID3v2-Data
* Renamed some functions. The old names will still work, but try to use the new names.
The following names were changed:
- MP3::Tag::getTags() to MP3::Tag::get_tags()
- MP3::Tag::newTag() to MP3::Tag::new_tag()
- MP3::Tag::ID3v1::removeTag() to MP3::Tag::ID3v1::remove_tag()
- MP3::Tag::ID3v1::writeTag() to MP3::Tag::ID3v1::write_tag()
- MP3::Tag::ID2v2::getFrameIDs() to MP3::Tag::ID3v2::get_frame_ids()
- MP3::Tag::ID2v2::getFrame() to MP3::Tag::ID3v2::get_frame()
* Bugfix for ID3v2.pm:
- getFrame() returned "undef" as a string instead of simple undef
- artist() produced an error when TPE1 is missing in TAG
* Bugfix for Tag.pm:
- DESTROY() checked only if $mp3->obj{filename} exists and not if it is defined before trying to
close it
- autoinfo() returns now a hash ref or an array as noted in the documentation
* Bugfix for ID3v1.pm:
- genres() expected an id3v1-object as first parameter and a genre
only as second parameter. Now the object can be omitted as in a call like
MP3::Tag::ID3v1->genres($genre) used by Tag.pm and ID3v2.pm
* bugfix for File.pm:
- Filenames may contain surrounding whitespaces now