At Wed, 06 Aug 2008 16:54:38 -0500, Timur Tabi wrote: > > Takashi Iwai wrote: > > > You can return SNDRV_PCM_POS_XRUN from the pointer callback (with > > kernel messages if you like). Then the PCM stream is stopped and the > > status is changed to SND_PCM_STATUS_XRUN. Further access will result > > in -EPIPE. > > This doesn't seem to work. I don't get any more underrun/overrun messages, but > the application doesn't know that something's failed. > > With mplayer, I see this message: > > alsa-lib: pcm_hw.c:405:(snd_pcm_hw_hwsync) SNDRV_PCM_IOCTL_HWSYNC failed: Broken > pipe > > And then mplayer hangs with the status bar here: > > A: 0.0 (00.0) of 249.0 (04:09.0) ??,?% $<50> > > aplay just hangs. Hm... The behavior with returning SNDRV_PCM_POS_XRUN is basically identical with the real XRUN detection. I guess the XRUN-stop mechanism doesn't work well with the case of hwsync. How is the PCM status during hang? Check /proc/asound/card0/pcm*/sub*/* files. Also, could you run with gdb and check at which code-path is it stopped? thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel