On Thu, 14 Feb 2002, Kai Vehmanen wrote:

> On Thu, 14 Feb 2002, Kai Vehmanen wrote:
>
> > 2.a) way to notice that an xrun has happened during b->c
> >   b) ability to reset the streams
> > 3. way to make sure that engine->process() never takes longer
> >    than period_time*number_of_periods
>
> More debug information follows. I changed jackd code so that if the time
> between mmap_begin() -> mmap_commit() exceeds total amount of buffering,
> we do a forced restart.
>
> Normal 'snd_pcm_drop() -> snd_pcm_prepare() -> snd_pcm_start()' sequence
> doesn't solve the problem. Audio is still garbled. I didn't try full
> 'close() -> ... -> open() -> ..' cycle yet, as that would involve quite a
> lot of work (jackd's alsa_driver.c is a long piece of code).
>
> What I did try was replacing drop() with snd_pcm_drain() and this resulted
> in a hang (not a kernel hang, but process never returns to user-space) in
> the driver level. Here's the backtrace:
>
> #0  0x40127b54 in __ioctl () from /lib/libc.so.6
> #1  0x401f9da0 in __DTOR_END__ () from /usr/lib/libasound.so.2
> #2  0x401b0063 in snd_pcm_drain (pcm=0x805af58) at pcm.c:922
> #3  0x401735eb in alsa_driver_audio_stop (driver=0x8053ec0) at alsa_driver.c:616
> #4  0x401740c7 in alsa_driver_wait (driver=0x8053ec0) at alsa_driver.c:965
>
> After this, jackd needs to be killed with SIGKILL.

I'm curious what is saying this command:

cat /proc/asound/card0/pcm0p/sub0/*

(replace card0 with affected card)

                                                Jaroslav

-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com


_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to