I did some further debugging on this tonight, using another track that
showed the same problems.

(Pdb) id3.version
(2, 3, 0)

(Pdb) data
'\x00Bill Evans\x00\x00'

(Pdb) frame
TPE1(encoding=0, text=[u'Bill Evans', u''])

(Pdb) frame.pprint()
u'TPE1=Bill Evans / '

I think there's an issue with differences between 2.3 and 2.4 not being
handled.

http://www.id3.org/id3v2.3.0#head-05145d86196104464db40d63035e402ee3c504e7
says:

> If the textstring is followed by a termination ($00 (00)) all the
> following information should be ignored and not be displayed.

Since the id3.version is identified as 2.3, it should drop everything
after the first terminating null byte, instead of splitting it into a
list, which then leads to the pretty printer joining those parts with a
slash -- in violation of the spec.

At the moment I'm just doing this:

--- id3-orig.py 2009-05-05 22:52:55.000000000 -0400
+++ id3.py      2009-05-06 02:47:06.000000000 -0400
@@ -1040,7 +1040,7 @@
                 except zlibError, err:
                     if id3.PEDANTIC:
                         raise ID3BadCompressedData, '%s: %r' % (err,
                         data)
-
+            data = data.rstrip("\x00")
         frame = cls()
         frame._rawdata = data
         frame._flags = tflags

which fixes my particular issue, but probably doesn't address the real
problem.




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to