[Speex-dev] How does the jitter buffer "catch up"?

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Sun Sep 18 19:23:53 PDT 2005

> Weeeeelll.. Actually, now that you mention it, the histogram shifting is a 
> race as well.

Indeed. So I guess it was a good thing that I never felt confident
enough to advertise the jitter buffer as "safe to use without
mutexes" :-)

> The chance of this happening is much less than the other one, but it COULD 
> happen ;)

Exactly, which is why mutexes should be used.

> > Then it would be a problem with the packet loss concealment. It's
> > actually decreasing the level of the interpolated audio with time. Maybe
> > it's not decreasing quickly enough?
> 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.

Actually, I can control the rate at which the level decreases, so I can
make it go down faster after several lost frames without affecting the
"one frame" case. Look at the "attenuation" array near line 1080 of
nb_celp.c. It controls the level of the interpolated frame as a function
of the number of consecutive lost frames. There's something similar for
the high-band too. If you tweak it, please send me the optimal coefs you
found. I guess another reason for the buzz is the way I reconstruct the
excitation. I should use a noise generator a bit more instead of just
continuing the pitch.

> 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.

The DTX code is getting a bit old. Perhaps it could be improved. But if
silence is fine with your users, you can use that too.


Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke

More information about the Speex-dev mailing list