On Thu, 27 Feb 2003, Kai Vehmanen wrote:
> Hi,
>
> sorry for the late response.
>
> On Sat, 22 Feb 2003, Jaroslav Kysela wrote:
>
> > I've added the snd_pcm_forward() function. This function is
> > function with opposite meaning to snd_pcm_rewind() - it skips given count
> > of frames (note that in the ring buffer are unchanged, only the r/w
> > pointer is increased). The application has full control on the r/w pointer
> > now. It's useful mainly in the no-xrun mode where the stream runs forever.
>
> I think this is a good addition, especially considering we already have
> the rewind function. I actually have some existing no-xrun code, where I
> need to do dummy write/reads if the app side is late. pcm_forward() is
> just the thing for handling these scenerios.
Note that we had and have the snd_pcm_reset() function which sync the r/w
ptr with the h/w ptr already (thus avail == ring_buffer for playback and
avail == 0 for capture).
The new function is intended for these applications:
1) real-time networking (UDP) - there is no guarantee the order of
received packets; application might do the stream composing directly
inside the ring buffer (thus avoid one copy) now
2) writing ahead when xrun condition happens (in no xrun mode); the
forward function allows to write data ahead of current hw_ptr to
decrease possibility of next - very close - xrun
3) accurate stream position, the snd_pcm_reset() function doesn't tell us
how many frames were skipped; using snd_pcm_forward(), we don't lose
this information
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel