IAX timestamps, presentation vs transmission time Re: [asterisk-dev] Video packetization proposal

Steve Kann stevek at stevek.com
Mon Jun 4 11:06:59 MST 2007

picking up on a subset of this thread:

Peter Grayson wrote:
> You are right that the obvious conversion would be trivial. However,
> there is a semantic difference between RTP and IAX. The RTP timestamp
> is the presentation time for the media. The IAX timestamp is the
> transmission time. Presentation time and transmission time may or may
> not be related. I really don't know. For asterisk, the transmission
> time is important for dejittering the packet stream. There seems to be
> an implicit assumption that presentation time is "upon receipt" which
> is different than "when the packet says".
I think that we can define this more clearly and come up with a workable 
definition.  In both cases, these times are relative, are they not?  And 
if they are relative, does it matter what their difference is, as long 
as it is constant?

In iaxclient, as well as in most media presentation systems for 
real-time media, the goal is not to present frames "upon receipt", but 
as soon as possible, honoring as best as possible the inter-frame 
spacings.  This is the job of the jitterbuffer.

In RTP, there may be a mechanism (I don't remember how this works) for 
transmitting frames with timestamps which don't (relatively) follow 
real-time -- this is used more in RTSP than in SIP, where you can ask an 
RTSP server to send you media, but send it at a multiple of real-time 
(2x as fast, 1/2 as fast), and Quicktime uses this in some cases 
(probably both for buffering, and for fast/forward, rewind, and other 

> Also, the RTP timestamp uses a 90kHz clock. The IAX timestamp is
> measured in milliseconds which is effectively a 1kHz clock. There is a
> rather large difference in precision between these two thus
> information would be lost in RTP to IAX mappings and IAX obviously
> does not have sufficient information to match RTP's precision in the
> IAX to RTP mapping case. Does this matter? Seems like it is worth
> consideration.
That's a good question.  I think that it wouldn't make much of a 
difference, if a frame was actually presented +- 1/2 msec from another 
frame (in the video case), and in the audio case practically all codecs 
use integral numbers of milliseconds to sample. 

RTP already has to deal with this for the NTSC case (29.97fps with the 
90khz clock).  IAX will need to deal with this for 15fps or 30fps, which 
_would_ divide neatly into a 90khz clock, but don't divide neatly into 1khz.


More information about the asterisk-dev mailing list