|
Rockbox mail archiveSubject: RE: Re[2]: LOW_WATER and high bitratesRE: Re[2]: LOW_WATER and high bitrates
From: Nielsen Linus (ext) <"Nielsen>
Date: Thu, 1 Aug 2002 07:40:46 +0200 > Are we reading the data from disk and sending it to the mp3 > decoder without noticing mp3 frames or are we aware of the > mp3frames? (I think the first one.) Definitely the first one. > How can I find the beginning of an mp3-frame (and find the header)? You will have to search the bitstream for a frame sync word. > If that is possible, I think we should update the > bitrate-field of the id3tag-struct by making it the > average of the ones that were found by > now, like: > > double bitrate_sum = 0.0; > double frames_read = 0.0; > > void DEI3(void) { > > // reading data from disk > > // get bitrate of actually read frame > > bitrate_sum += bitrate_this_frame; > frames_read += 1.0; > mp3entry.bitrate = (int)(bitrate_sum / frames_read); > > } > > (double to prevent overflow) First of all, it would take the CPU a lot of time to search that data and find the frame sync words. Secondly, we don't have floating point support. This CPU has no floating point unit. I don't think that is feasible. > The playing time should also be updated while playing the song. What firmware are you using? We have been displaying play time for ages. > I'd prefer this instead of reading in the whole file before > playing it (it takes too long). What makes you think we read the whole file before playing it? > And I think it'll give a really good average value very quickly. No, that is taken care of dynamically by the decoder DSP, regardless of our efforts. /Linus Received on 2002-08-01 Page template was last modified "Tue Sep 7 00:00:02 2021" The Rockbox Crew -- Privacy Policy |