|
|
Choosing A Webhost: |
RE: How does the jitter buffer "catch up"?: msg#00057audio.compression.speex.devel
Err, unless I'm totally wrong, there are a few race conditions.[...] Weeeeelll.. Actually, now that you mention it, the histogram shifting is a race as well. In _put, the lines jitter->shortterm_margin[i] *= .98; jitter->longterm_margin[i] *= .995; jitter->shortterm_margin[int_margin] += .02; jitter->longterm_margin[int_margin] += .005; are read-accumulate-write operations. Let's assume the +40 bin has the shorterm_margin 1.0, and _put just read it to do a multiply. At this point, _get shifts the histogram, so the 1.0 value is copied to the +20ms bin. _put gets the CPU again, and writes 0.98 (the 1.0 it fetched, multiplied by 0.98) back to the +40 bin. The sum of margins is now 1.98, which is Not Good (tm); it'll first shift it once more (ontime = 0.9x, +20ms = 0.9x), then shift again, (late =0.9x, ontime = 0.9x).. Eeek, packets are late, interpolate.. then they're early and so on. This will continue until the margins return to sane values. The chance of this happening is much less than the other one, but it COULD happen ;) Why would you do that. The idea of interpolating a frame is exactly to I'd say so, my testers kept asking me what planet my room-mate is from :) Note that this only happens when you have quite a bit of interpolation, meaning there is serious network trouble anyway; don't sacrifice the quality of one or two-frame interpolation (which happens quite frequently) for these extreme cases. PS: Regarding the earlier stuff about DTX using the VAD from the preprocessor, I ended up switching back to silence during non-transmission. The denoiser is good enough that people expect silence when others aren't talking, the comfort noise was unwelcome.
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: How does the jitter buffer "catch up"?, Thorvald Natvig |
|---|---|
| Next by Date: | Re: How does the jitter buffer "catch up"?, Jean-Marc Valin |
| Previous by Thread: | RE: How does the jitter buffer "catch up"?, Jean-Marc Valin |
| Next by Thread: | RE: How does the jitter buffer "catch up"?, Jean-Marc Valin |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |