Package: libid3tag0
Version: 0.15.1b-8
Severity: normal

Some players encode the genre tag number (id) in parenthesis (eg:
"(18)" == "Techno"). The libid3tag0 code doens't handle this properly,
as it assumes, in genre.c:65, that if the first character of the genre
string is not a number, then the string shall not be considered as a
genre id.

I suppose that this type of genre coding is not supposed to be, but the
fact is that it does exist :P

I have a workaround in my piece of code for this, but I don't know if it
is suitable for libid3tag0. Here's a simplified snippet:

if ((ucs4 = id3_field_getstrings(field, i))) {
        if (strcmp(frameid, ID3_FRAME_GENRE) == 0) {
                if ((ucs4[0] == '(') && (ucs4[1] >= '0') &&
                                (ucs4[1] <= '9')) {
                        mp3gid = id3_ucs4_getnumber(ucs4+1);
                        ucs4 = id3_genre_index(mp3gid);
                }
                else
                        ucs4 = id3_genre_name(ucs4);
        }
}

(the pseudo digit check is necessary to avoid issues like "(Funky
Music)" genre strings, which aren't genre ids).

This is not pretty but it actually works for me. I guess it'd be even
better if the lib knew how to do that itself ;)

HTH

T-Bone

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: hppa (parisc64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-parisc64-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages libid3tag0 depends on:
ii  libc6                         2.3.5-12   GNU C Library: Shared libraries an
ii  zlib1g                        1:1.2.3-9  compression library - runtime

libid3tag0 recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to