At Thu, 20 Sep 2007 11:46:12 -0400, J. Scott Merritt wrote: > > On Thu, 20 Sep 2007 16:23:30 +0200 > Takashi Iwai <tiwai@xxxxxxx> wrote: > > > snd_pcm_prepare() is required to recover the stream from XRUN or any > > other errors. But, for the recovery purpose, we have now > > snd_pcm_recover() as a generic solution, too. > > It appears that (currently) the additional benefit of snd_pcm_recover > is simply that of resuming the stream. However, I haven't seen any > details on when/why a stream would become suspened and require this > type of recovery. The audio apps (or system) usually want to know when the stream is stopped unexpectedly. The suspend/resume is exactly as same as XRUN from this perspective. That's why it's handled by the application. snd_pcm_recover() is provided to handle it more easily. > Also, in SALSA, it appears that snd_pcm_recover can -block- even if > the stream has been configured for non-blocking behavior. It's with ALSA-lib, too. The snd_pcm_recover() code is identical in both libraries. This is the function that may block regardless what mode you use. The non-blocking mode isn't specified for ioctls but for read/write in general. In theory, the normal snd_pcm_prepare() could block (take some time) if the driver is implemented in such a way. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel