Hello,
I am trying to play the converted PCM samples from Madlib on PalmOS..But the speed at which Madlib decodes the samples is too high.I am not able to buffer all the samples at one time whicih results in buffer overlapping.I wanted to know whether it is possible to make the Madlib libarary wait for a while till all the current samples have been played.
Regards, Swapnil
On Sep 5, 2005, at 12:18 AM, Swapnil Wagle wrote:
I am trying to play the converted PCM samples from Madlib on PalmOS..But the speed at which Madlib decodes the samples is too high.I am not able to buffer all the samples at one time whicih results in buffer overlapping.I wanted to know whether it is possible to make the Madlib libarary wait for a while till all the current samples have been played.
This is up to you. If you don't want libmad to process more samples, then don't call a low-level API routine or return from a high-level callback until you're ready.
There are examples of this in madplay for Mac and Windows systems in audio_carbon.c and audio_win32.c, respectively: they each make use of a synchronization object (a semaphore) to wait for an available output PCM buffer. When the system finishes playing a buffer, it runs a callback in separate thread which releases the semaphore.