dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Rockbox mail archive

Subject: Re: Different ID3V2 tag parsing

Re: Different ID3V2 tag parsing

From: Björn Stenberg <>
Date: Wed, 23 Oct 2002 11:42:30 +0200

D wrote:
> I don't know if anyone is interested in this or not,

I am interested in improving the id3 code, but I would prefer we make a bigger change instead. The current code is too complex and too slow.

mpeg.c should load the entire file into ram, tags and all, and call id3.c:

bool mp3info( struct mp3entry* entry,
              int fd,
              unsigned char* buffer1,
              int len1,
              unsigned char* buffer2,
              int len2 )

The reason for having two pointers is that the buffer may wrap. If the buffer is contigous, buffer2 is NULL.

fd is used for seeking to the end of the file to read the id3v1 tag *if* no id3v2 tag was found in the buffer and *if* fd>=0. If fd==-1, the complete file is in ram, and the id3v1 tag can be read without further file access.

Note that this scheme involves changing the mpeg.c code so the DMA skips the id3v2 and id3v1 tags in the buffer during playback. Today the mpeg code assumes all data in the buffer is MP3 data.

Any comments? Any volunteers?

Received on 2002-10-23

Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy