[Speex-dev] Changing the meaning of jitter buffer timestamp

Peter Kirk pwk.linuxfan at gmx.de
Wed Oct 5 06:17:09 PDT 2005

On Wednesday 05 October 2005 13:53, Jean-Marc Valin wrote:
> > what happens if this number flows over? It is just a "int", so it might
> > reach its limits at 2^15 = 32768, that happens after 102 puts...
> I would say that an int is 32 bits :-) Actually, RTP defines the
> timestamp as a 32-bit value. Now, what happens when it overflows (3 days
> for narrowband), I don't know what the RFC says about it.
> > In my current
> > implementation I do "((long)packetCounter * 20) % 32760", but speex
> > doesn't like me starting over at zero, and resets the buffer (every 32
> > seconds)...How to do it right?
> Why do you insist on having considering only 16 bits?

My C book taught me an int is only guaranteed to be 16bits or bigger, and 
since I am trying to write code that doesn't break on other systems, I am 
assuming the "worst case". Hence I have to deal with the overflow... Is my 
information that "int" can be 16bit (a) false or (b) true but not valid for 
any relevant architecture?

Quote from http://en.wikipedia.org/wiki/C_variable_types_and_declarations#Size

A short int must not be larger than an int.
An int must not be larger than a long int.
A short int must be at least 16 bits long.
A long int must be at least 32 bits long.

In my words:
16 bit <= short <= int <= long >= 32 bit

I know for a fact that my ints are 32bits long, but I am worried that it might 
not be the case everywhere, that is why I did the above modulus hack, to make 
sure overflowing works (which it doesn't, at least not without a jitter 
buffer reset and some aliens visiting).

Even with 32 bits, is 37 hours of audio transmition (wide band) something that 
one should consider not to happen?

Before borrowing money from a friend, decide which you need more.
		-- Addison H. Hallock
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20051005/441d6e12/attachment-0001.pgp

More information about the Speex-dev mailing list