From: Steven S. <ss...@so...> - 2004-02-26 21:38:49
|
One thing I have noticed, is that the audio latency under Firefly seems to have much lower than the latency from iaxClient-based UAs. I would guess that Adam saved a bunch of CPU cycles by talking directly to the MME interface, rather than using PortAudio or some other abstraction layer. The difference is notable. (Both clients were using GSM). I don't know how hard it would be to go back to the native audio I/O interface, but that may be one way to cut down on the audio glitches. BTW - What are your thoughts on implementing iLBC, SpeeX, G.711 A & U, and possibly the new G.726/32 that just went into Asterisk? I know you are looking to get the library clean before we add too much more. Just looking for thoughts as to the difficulty. Regards, Steve Steven Sokol Owner/Manager Sokol & Associates, LLC Phone: 816.822.1807 IaxTel: 700.613.9004 Web: http://www.sokol-associates.com _____ From: Steve Kann [mailto:st...@st...] Sent: Thursday, February 26, 2004 11:30 AM To: Steven Sokol Subject: Re: [Iaxclient-devel] Any clues in the IAX2/NAT bug? Steven Sokol wrote: [These issues seem to affect Win32 only at the moment] 1) On some machines, there are periodic "pops" and "cracks" in both directions in the audio system. 2) Sometimes the audio system gets into a state where the input (from the microphone) is replaced by a "loop" of previously captured audio, about 1 second long. When this happens, usually garbage of some sort is played to the output. We haven't been able to isolate the conditions when this happens. 3) The output level control does not work properly on Win9x systems. (1) and (2) is what we're working most diligently on right now. There may be some bug in the underlying audio code, _or_ it could be memory corruption from somewhere unrelated. (3) is probably unrelated, and minor. Has anyone on the list noticed something like this? I generally see minor dropouts (causing very small but annoying pauses in the audio) when I switch the focus from one application to another under Windows. I assumed this was simply the price of using a non-realtime, non-kernel-level system. Is this the same problem you are seeing? I think we see that as well, but we get these pops, etc, even under nominal loads. In our debugging, we've found that we're getting these "pops" and stuff from way down in the Win MME "waveXXX" APIs, though, so we're trying to isolate it a bit from the rest of the code to see if that's the case. Have you tried switching out the PA Windows MME module for the DirectX module to see if that makes any difference? While MME is "native" and DirectX requires relatively current DirectX libraries, it does seem to me to maintain better control over the audio stream it is playing. The fact that it requires the DX runtime is the only downside I can see. And, my understanding is that the DX stuff has _much worse_ performance when there aren't native DX drivers for your soundcard available -- in this case, DX runs over WMME, and you get really high latencies. For us, it's really a non-starter, because we are distributing this to users who we cannot burden with needing to go and download extra DirectX stuff. And we need to support 98SE as a baseline. Maybe we'll revisit this sometime, like when we add Video to iaxclient.. -SteveK |