Bug 139585 - id3v2 tag broken by editing tags
Summary: id3v2 tag broken by editing tags
Status: RESOLVED FIXED
Alias: None
Product: taglib
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Slackware Linux
: NOR normal
Target Milestone: ---
Assignee: Scott Wheeler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-04 10:02 UTC by richlv
Modified: 2007-09-04 14:17 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description richlv 2007-01-04 10:02:44 UTC
Version:           svn 619236 (using KDE KDE 3.5.4)
Installed from:    Slackware Packages
OS:                Linux

might be a taglib problem, but i don't know how to verify that.

a reproducible problem :
single track with both id3v1 (1.1) & v2 tags (v2.3).
eyeD3 -2 reports :

Time: 3:46      MPEG1, Layer III        [ ~246 kb/s @ 44100 Hz - Joint stereo ]
--------------------------------------------------------------------------------
ID3 v2.3:
title: Silence Is Golden But Duct Tape Is Silver                artist: Against All Authority
album: The Restoration Of Chaos And Order               year: 2006
track: 6                genre: Punk (id 43)
Comment: [Description: ] [Lang: es]


WXXX [Description: ]:

eyeD3 -1 reports :

Time: 4:51      MPEG1, Layer III        [ 192 kb/s @ 44100 Hz - Joint stereo ]
--------------------------------------------------------------------------------
ID3 v1.1:
title: Silence Is Golden But Duct Tap           artist: Against All Authority
album: The Restoration of Chaos and O           year: 2006
track: 6                genre: Punk (id 43)

now, changing tags inside amarok and only modifying album tag to be "The Restoration of Chaos and Order".

eyeD3 -1 reports the same data;
eyeD3 -2 reports :

Traceback (most recent call last):
  File "/usr/local/bin/eyeD3", line 950, in ?
    retval = main();
  File "/usr/local/bin/eyeD3", line 937, in main
    retval = app.handleFile(a);
  File "/usr/local/bin/eyeD3", line 351, in handleFile
    audioFile = eyeD3.tag.Mp3AudioFile(f, self.opts.tagVersion);
  File "/usr/lib/python2.4/site-packages/eyeD3/tag.py", line 1582, in __init__
  File "/usr/lib/python2.4/site-packages/eyeD3/tag.py", line 468, in link
  File "/usr/lib/python2.4/site-packages/eyeD3/tag.py", line 1308, in __loadV2Tag
  File "/usr/lib/python2.4/site-packages/eyeD3/frames.py", line 1751, in parse
  File "/usr/lib/python2.4/site-packages/eyeD3/frames.py", line 2085, in createFrame
  File "/usr/lib/python2.4/site-packages/eyeD3/frames.py", line 699, in __init__
  File "/usr/lib/python2.4/site-packages/eyeD3/frames.py", line 714, in _set
IndexError: string index out of range

amarok itself also sees only the trimmed tags.

now, the weird thing - this happens only for tracks from this album whose title exceeds 30 characters. if track title is less than 30 chars, id3v2 tags are written succesfully (and upgraded to v2.4) :

Time: 2:01      MPEG1, Layer III        [ ~238 kb/s @ 44100 Hz - Joint stereo ]
--------------------------------------------------------------------------------
ID3 v2.4:
title: Collecting Scars         artist: Against All Authority
album: The Restoration of Chaos and Order               year: 2006
track: 4                genre: Punk (id 43)

i have both before and after files and can provide them for testing.
Comment 1 Alexandre Oliveira 2007-01-04 11:57:29 UTC
Can you test changing the file with juk, konqueror, or any other taglib app? I doubt it's Amarok related.
Comment 2 richlv 2007-01-04 12:29:08 UTC
yep, changing tags in konqueror also breaks v2 tag.
actually editing tags for any track with title exceeding 30 chars breaks id3v2 tag...
editing a second time the broken file creates 2.4 tags just fine.
Comment 3 Alexandre Oliveira 2007-01-04 12:58:34 UTC
Scott Wheeler, do you want the file through email just like the files for crash reports?
Comment 4 richlv 2007-01-04 13:31:14 UTC
well, the file that i have for the reproducible testcase is 6.7mb, so i would not send it through mail in any case ;)
i could place it on a server or deliver it by other means.
it is also possible that this can be reproduced with any file containing both 1.1 & 2.3 tags, but i don't think i can try that out myself.
Comment 5 richlv 2007-01-04 15:23:17 UTC
mm. i can't change version information in report data, so i'm adding it here.
taglib version is 1.4, slackware package.
Comment 6 Jeff Mitchell 2007-01-06 20:46:33 UTC
IIRC there are some issues upgrading ID3v2.3 tags with TagLib 1.4.  I believe these have been fixed in TagLib SVN, but Scott would know for sure.
Comment 7 Scott Wheeler 2007-02-13 11:49:55 UTC
Email or a server is fine.  Please name the files as: 139585.mp3 and 139585.mp3-broken

TagLib usually works just fine with longer text fields, so without the files there's not enough information to proceed.
Comment 8 richlv 2007-02-13 12:30:35 UTC
mail with links to files before and after sent.
i also verified that the problem is still there with the files :)
Comment 9 Scott Wheeler 2007-02-13 13:04:35 UTC
I'm not sure exactly which change did it, but I can reproduce the problem with 1.4 and not with the SVN version, so I'm going to mark it as fixed.
Comment 10 richlv 2007-09-04 14:17:12 UTC
any chance to get a new taglib release ? i'm getting hit by this problem again and again.and i wonder how many users are hit by it without even knowing it...