At Mon, 25 Feb 2008 09:38:38 -0600, Timur Tabi wrote: > > Takashi Iwai wrote: > > > It's just as same as on ALSA native API, checks the validity of the > > current position reported by pointer callback in > > snd_pcm_period_elapsed(). > > Are you talking about this code in snd_pcm_update_hw_ptr_pos? > > pos = substream->ops->pointer(substream); > if (pos == SNDRV_PCM_POS_XRUN) > return pos; /* XRUN */ This is one part that ALSA detects XRUN. > > What if my 'pointer' function never returns SNDRV_PCM_POS_XRUN? How else can I > get an underrun detected? Another part is in snd_pcm_update_hw_ptr_post(). It checks whether the updated empty space (snd_pcm_playback_avail()) is bigger than stop_threshold (usually equal with the buffer size). Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel