[alsa-devel] Application supporting forward/rewind APIs

Raymond Yau superquad.vortex2 at gmail.com
Thu Sep 24 09:57:44 CEST 2009

Do you mean that there is no test program to verify the implementation is
correct ?

Some sound card 's hardware has FIFO buffer.

For example , au88x0

according to patent 6167465

Additionally, a first-in-first-out (FIFO) buffer is established for the DMA
channel. Then a DMA request is generated in order to begin filling the FIFO
buffer with data from the first data segment 150(0) using the information
provided by CPU 210.

The FIFO buffer may be any suitable size capable of handling bus latencies
while small enough such that the memory requirement is not overly
burdensome. In one embodiment of the present invention, the FIFO buffer is
32 samples or words in depth, which would withstand a maximum bus latency of
about 4 microseconds. By way of example, if 48 DMA channels trigger
simultaneously, with a trigger level set at half the buffer size (16
samples), each DMA channel can wait 16 samples (20 microseconds per sample),
or approximately 320 microseconds before running out of data.

It seem that alsa-lib should not allow application to rewind the application
pointer to hardware pointer since you cannot write the next sample because
of FIFO buffer even using mmap read/write

or bug in *snd_pcm_rewindable() ?*

2009/9/24 Takashi Iwai <tiwai at suse.de>

> At Thu, 24 Sep 2009 13:04:24 +0530,
> Anuj Aggarwal wrote:
> >
> > Hi,
> >
> > I want to try the forward/rewind APIs supported by the ALSA library.
> > Can someone point to an ALSA application which exercises these APIs?
> Pulseaudio is using snd_pcm_rewind().
> About snd_pcm_forward(), I don't know of...
> Takashi
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

More information about the Alsa-devel mailing list