[Alsaplayer-devel] New patch against alsaplayer fixes time and other stuff

Andy Lo A Foe andy@alsa-project.org
Fri, 21 Apr 2000 04:53:28 +0200 (CEST)

On Thu, 20 Apr 2000, safemode wrote:

> The instability seen in alsaplayer when playing VBR mp3s is abvious at
> least in 0.99.32. I believe this is due the inproper way of finding the
> total length of mp3 in seconds. In 0.99.31 (one that actually plays
> VBR's) I have been able to patch it against my mp3stat program and it

I don't remember what changed in the MP3 plugin since the .31
release. I'll have look at this during easter holiday.

> This way works, and since the mp3 headers are mmapped , you dont see any
> delay.  Also, users will notice that they can now skip ahead in a
> VBR mp3 w/o locking it up as before.   Just patch this against a normal

I'm downloading the patches to my box tomorrow morning, are you changing
the MP3 plugin itself? Basically everything regarding seeking and
determining the total length of a stream can be done inside a plugin, no
changes are needed to the main ALSA program. 
You can calculate the length at open() time. You can also build a
(big) array which contains all the start positions of the frames in the
VBR mp3. This will result in a (small?) delay when opening VBR's but
all other functions should work fine after that.

> 0.99.31 tarball and configure as normal.   i'll be waiting for some
> response or feedback, and if i dont get any i'll just post it on
> freshmeat so everyone else can finally play their vbr's the right way.
> thanks and i look forward to a fix being made.    patch can also be
> found at
> www.voicenet.com/~safemode/alsaplayer-0.99.31-time-fix.patch.bz2

Ah ok, I just checked the patch. The time changes should be moved to the
MP3 plugin directory (I'll do this over the weekend if I don't get a new
patch ;-). You really want to avoid calling MP3 specific functions inside
the main program e.g. every file you load will be passed to mp3stat().

AlsaPlayer, http://www.alsa-project.org/~andy/