[Speex-dev] DTX mode using preprocessor?

Jean-Marc Valin Jean-Marc.Valin at USherbrooke.ca
Sun Sep 4 20:19:12 PDT 2005

> I ran into another problem, actually. The jitter buffer doesn't really 
> cope well with DTX. It will (naturally) reset as soon as speech resumes, 
> but then it takes quite a few frames before it's adjusted again, meaning 
> the first part of whatever is being said gets garbled pretty badly on the 
> receiver side... So at the moment I'm back to just continous transmission. 
> I'll peek a bit at the jitter buffer internals tomorrow and see if I can 
> figure out what's going on.

That one's easy. In jitter.c, you have 

if (jitter->lost_count>=25)
   jitter->lost_count = 0;
   jitter->reset_state = 1;
   speex_decoder_ctl(jitter->dec, SPEEX_RESET_STATE, NULL);

What it does is that if the jitter buffer hasn't been able to play any
of the last 25 frames, it assumes that something's wrong with the
communication and it needs to reset everything. The quick solution is
probably just to make that value higher or remove it. A better solution
would be to distinguish between late and lost packets. The reset should
only occur if all the packets are late.


Jean-Marc Valin <Jean-Marc.Valin at USherbrooke.ca>
Université de Sherbrooke
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20050905/9f7d1706/attachment.pgp

More information about the Speex-dev mailing list