> Can you please explain what happens when a packet is being delayed? I seem to 
> understand that each packet has a life time and it gets discarded when its 
> time is up. Does lives555 wait for the following packets to arrive, or does 
> it continue delivering packets to client and then deliver the previous 
> packets (out of order?).

Our "RTPSource" class (and subclasses) *always* delivers (the payload of) 
incoming RTP packets in order.  In other words, data is *never* delivered 
out-of-order, even if incoming RTP packets happen to be misordered.

If there is no packet loss - or misordering - in the network, then our code 
always delivers (the payload of) incoming RTP packets without delay.  I.e., if 
the last-received RTP packet had RTP sequence number N, and the next incoming 
packet has RTP sequence number N+1 (mod 65536), then this next incoming packet 
is always delivered immediately.

If, however, the next incoming packet has RTP sequence number N+2 (or later), 
then its payload is not delivered immediately.  Instead, it is delayed by the 
'packet reordering threshold', to see what subsequent packets happen to arrive. 
 If packet N+1 arrives before the 'packet reordering threshold' time, then it 
will then get delivered, followed by (the already-arrived) packet N+2.

If, however, the 'packet reordering threshold' threshold elapses without packet 
N+1 arriving, then (the already-arrived) packet N+2 will get delivered instead. 
 In this case, packet N+1 will never get delivered, even if it happens to 
arrive later.

By default, the 'packet reordering threshold' is 100 ms.  Therefore, incoming 
packets may be delayed by this time - but *only* if there is packet loss in the 
network.  It's important to understand that this is the *only* place in our 
code where incoming packets may be delayed before being delivered.  If you are 
seeing delays greater than 100ms, then it is *not* happening in our code, so 
don't waste your time looking for it there.

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to