Rockbox mail archiveSubject: Re: Different ID3V2 tag parsing
From: Björn Stenberg (bjorn_at_haxx.se)
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,
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?
Page was last modified "Jan 10 2012" The Rockbox Crew