On Sat, 22 Feb 2003, Abramo Bagnara wrote:

> Jaroslav Kysela wrote:
> > 
> > Hello all,
> > 
> >         I'd like to announce a new PCM API extension. Although it is
> > implemented, it might be changed following the discussion on this list.
> >         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.
> 
> Don't we had already snd_pcm_reset for exactly the same purpose?

Yes and no. You cannot fill the buffer ahead without writting some
samples. I think that it's not bad to offer the full control on appl_ptr.
It doesn't cost us anything and I can imagine some special applications
where the buffer is auto-silenced that they need to write samples into the
specific position. Reset is nice, but you cannot tell the count of frames
to be skipped without filling.

I'm also going to propose next extension: Actually, the appl_ptr managing
routines - snd_pcm_reset(), snd_pcm_rewind(), snd_pcm_forward() always
uses an ioctl for it's operation. I think that it wouldn't be a bad idea
to implement these function in the lightweight variant, too. I mean that
they will operate only with the actual hw_ptr without calling the kernel
code. We have already functions to synchronize the hw_ptr with the
hardware (snd_pcm_delay(), snd_pcm_hwsync()). Because it's late to change
this behaviour in alsa-lib, I propose to create a function 
'snd_pcm_fast_rw_change()' (better name?) which tells the alsa-lib that no 
accurate operation is required. Especially lowlatency applications will 
benefit that we removed more 'user<->kernel' switches.

                                                Jaroslav

-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs



-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to