Re: How does ALSA detect underrun in OSS emulation?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux