Re: Handling non-buffer-sized MMAP requests

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

 



2010/12/13 Clemens Ladisch <clemens@xxxxxxxxxx>

> louis@xxxxxxxxxxxxxxxx wrote:
> > Hi everyone, I'm having some difficulty improving a full-duplex MMAP ALSA
> > routine.  ALSA sometimes reports more samples available for input than my
> > buffer can take, or asks for more samples than I have available.  Is this
> > a buffer overrun/underrun?
>
> Yes.  (And this should happen only when you've disabled stopping on
> an xrun, so you've asked for it.  :-)
>
> > If I restart the streams in the case that too
> > much input is available (on the assumption that it's an xrun) it seems to
> > happen at the drop of a hat and makes things worse.  If I discard the
> > excess input, that doesn't work well either.
> >
> > What is the appropriate way to deal with this situation?
>
> The best way would be to prevent this situation from happening, i.e.,
> read the captured data from the buffer before it overflows.
>
> (In the case of capturing, latency does _not_ depend on the buffer size,
> so you should make the buffer as big as possible.)
>
>
Refer to http://thread.gmane.org/gmane.linux.alsa.devel/66826/focus=66954

you mention that snd_pcm_forward can be used to recover from an underrun
condition for playback

In underrun/overrun of playback/capture , the hardware pointer is ahead of
the application pointer

Can snd_pcm_forward be used to recover from overrun in  capture when
automatic stop is disabled ?

Why does  Pulseaudio server request rewind at  the end of underrun ?

D: protocol-native.c: Requesting rewind due to *end of underrun*
_______________________________________________
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