[alsa-devel] a11y: howto reduce latency with alsa's dmix plugin?

Takashi Iwai tiwai at suse.de
Tue Sep 1 12:40:02 CEST 2009


At Tue, 01 Sep 2009 12:32:27 +0200,
Halim Sahin wrote:
> 
> On Mo, Aug 31 2009, Takashi Iwai wrote:
> 
> > At Sun, 23 Aug 2009 09:55:18 +0000 (UTC),
> > Halim Sahin wrote:
> >> 
> >> Hello,
> >> Is there a way to reduce latency on audiocard if the dmix plugin is in
> >> use?
> >> I am asking because there is a strange problem with asistive
> >> technologies which are outputing through alsa.
> >> E. G. speech-dispatcher takes almost a half sec to stop the
> >> speech-synthesizer.
> >> If the user navigates quickly through menus, there are simultane outputs
> >> at a time.
> >> (tested with an usb logitech headset, snd-intel8x0 based card,
> >> snd-hda-intel).
> >> The same problem can be reproduced by running mplayer with alsa output
> >> driver and pressing
> >> quickly left/right arrow.
> >> You should hear several samples at a time.
> >> 
> >> Using an sblive card which doesn't use dmix doesn't have such problems.
> >> 
> >> Using the dmix plugin should audio much faster to avoid this problem.
> >
> > It's a bit hard to guess.  This could be the difference of PCM drain
> > implementation between hw and dmix, but a half second is still too
> > long.
> >
> > Could you prepare a small test case to reproduce the buggy behavior?
> 
> Yes that's easy:
> The following should be tested with active dmix.
> 1. login to a textconsole
> 2. mplayer -ao alsa your_favourite_file
> 3. Press space during playback.
> 
> Result: it takes about an half sec to stop the playback.

This isn't a test case to analyze.  If the app you mentioned is using
libao as the backend, then yes, it's the same issue.  If not, it just
appears same, but you don't know whether it's the same.

At best, we need a small C code that reproduces the behavior.

> The second test would be:
> 1. login to a console
> 2. mplayer -ao alsa:device=hw=0,0 your_file
> 3. press space during playback
> Result:
> The playback stops without delay

This could be also the difference whether the device supports
pause or not, too.


Takashi


More information about the Alsa-devel mailing list