After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 638535 - id3demux: multiple genres as per ID3v2.4 not supported correctly
id3demux: multiple genres as per ID3v2.4 not supported correctly
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 0.10.27
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-01-02 19:22 UTC by Erich Schubert
Modified: 2011-01-02 19:28 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Erich Schubert 2011-01-02 19:22:56 UTC
MP3 files with multiple genres and ID3v2.4 tags are not supported correctly. Only the first genre will show up in the results.

I believe I've found the bug by staring at the source code long enough. I did NOT get around to building it myself and validating the fix.

But have a look at:

gst-plugins-good/tree/gst/id3demux/id3v2frames.c line 875 and following:

  for (i = 0; i < tag_fields->len; i++) {
    gint len;

    tag_str = g_array_index (tag_fields, gchar *, 0);

(in method "id3v2_genre_fields_to_taglist" which explains why this applies to multiple genre tags but not to multiple artists)

In my opinion, this will read the first "genre" tag n times, instead of properly iterating over the array. I propose replacing the "0" with an "i".
Comment 1 Tim-Philipp Müller 2011-01-02 19:28:01 UTC
Thanks, fixed:

 commit 5b79a3d2f89eb8ed155268b9507125008b288a1a
 Author: Erich Schubert <erich@debian.org>
 Date:   Sun Jan 2 19:23:51 2011 +0000

    id3demux: fix parsing of ID3v2.4 genre frames with multiple genres
    
    We'd only extract the first genre (multiple times) instead of all
    genres.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=638535