[mad-dev] mad on arm processor -- strange problems.
Reza Naima
reza@reza.net
Mon, 27 May 2002 15:01:10 -0700
> I answered this in private email: I think the problem is that you are
> refilling your stream buffer without copying the unconsumed data from
> the end of the previous buffer.
Right on the money -- I changed the code to accomodate, and it seems to
be working now. I actually pre-fetch blocks of mp3 into buffers via a
seperate thread, so copying them around wouldn't work -- Instead, I have
the buffers overlap by 2880+MAD_BUFFER_GUARD bytes. Works like a charm.
So, now, it actually gets through the entire MP3 before it dies.
However, it still sounds like shit. It makes a clicking/swooshing sound
at about 4Hz, but you can clearly hear the audio in the background.
Could this be a result of the simplified scale() function in minimad
(which I'm currently using?) Here are all the specs I have to go on for
the rio's audio device (from some source code) :
// Must output buffers of 4608 bytes or audio driver barfs.
// Sample rate is always 44.1k, format always 16-bit stereo, alternating
// left/right samples.
and this is the contents of /proc/audio
buffers : 32
buf size : 4608
samples : 27767808
interrupts: 0
wakeups : 0
fifo errs : 0
buffer hwm: 31
first fill: 1
below half: 18
Thanks,
Reza