I sent a patch to the ALSA developers 4 years ago. It was never included in the kernel :/
ALSA maintainers are very open to patches. try sending this again
Here's the comment from a script that I once wrote to make some closed-source dinosar code run (speech recognition) on modern linux: # Note that ALSA (Advanced Linux Sound Architecture), the sound drivers that # replace the older OSS as of kernel 2.5, also introduce a problem for some # soundcards: unlike the OSS drivers, the ALSA drivers limit the recording # buffer to the hardware limit of your sound card. For example, the SB Live! # only has two 'period' buffers (called fragments before), and although # viavoice requests an 'arbitrary number of periods, size 1024 bytes', it # only gets two periods of 1024 bytes: 2048 bytes in total! The ViaVoice # engine however doesn't even process sound until it sees at least 6102 bytes. # The 'solution' for this is to increase the buffer size (from 1024 to say # 8192), this script also takes care of that. Unfortunately, also that is # possibly not enough: the sound is read from the hardware in chunks of # 'period size' and having only two buffers this is often causing an underrun. # When ALSA sees an underrun... it stops the sound stream.
native ALSA drivers has all these required features.
My (four year old) patch can be found here: http://www.xs4all.nl/~carlo17/alsa/index.html I STILL think that ALSA should restart the stream after an underrun, but I am not someone who asks twice :p usually.
If it is native ALSA driver then it will restart after each underrun and overrun. It is the applications job to do this, alsa-lib provides all support for this. I have no idea of OSS and OSS emulation in ALSA. If you have any queries please try sending to alsa-devel. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/