[pkg-mad-maintainers] Bug#350578: libid3tag0 doesn't handle correctly genre ids in parenthesis

Thibaut VARENE varenet at debian.org
Mon Jan 30 13:22:25 UTC 2006


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




More information about the pkg-mad-maintainers mailing list