Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Different ID3V2 tag parsing
From: Doug (motiv02_at_layndo.com)
Date: 2002-10-28


I'd like to help out, but unfortunately I don't have the time right now. It
took me forever to get the time to make the small change that I made. I
just couldn't take seeing my filenames cut off anymore, so the first chance
I got, I fixed it. I didn't really look into the code enough to see how
complex or slow it is. I'd say the way I changed it to read the individual
tags one at a time from the file doesn't help speed much either, but I don't
notice any difference, so it is worth it for me. Does reading from the file
several times instead of once take a lot more time? I guess that is direct
interaction with the drive everytime, so probably so. I like the fact that
doing it that way puts no limit on the total tag size though. It seems like
I read in the V2 spec that the size field is 28 bits or something outrageous
like that - not even I have tags anywhere close to that big. :) Anyway, if
things ever slow down for me and noone has made the modifications you
suggested, I'll take a look at it, but there's no telling when I'll get a
chance.

Doug

----- Original Message -----
From: "Björn Stenberg" <bjorn_at_haxx.se>
To: <rockbox_at_cool.haxx.se>
Sent: Wednesday, October 23, 2002 4:42 AM
Subject: Re: Different ID3V2 tag parsing

> 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?
>
> --
> Björn
>
>



Page was last modified "Jan 10 2012" The Rockbox Crew
aaa