org.mobicents.media.server.impl.rtp
Class JitterBuffer

java.lang.Object
  extended by org.mobicents.media.server.impl.rtp.JitterBuffer
All Implemented Interfaces:
java.io.Serializable

public class JitterBuffer
extends java.lang.Object
implements java.io.Serializable

Implements jitter buffer. A jitter buffer temporarily stores arriving packets in order to minimize delay variations. If packets arrive too late then they are discarded. A jitter buffer may be mis-configured and be either too large or too small. If a jitter buffer is too small then an excessive number of packets may be discarded, which can lead to call quality degradation. If a jitter buffer is too large then the additional delay can lead to conversational difficulty. A typical jitter buffer configuration is 30mS to 50mS in size. In the case of an adaptive jitter buffer then the maximum size may be set to 100-200mS. Note that if the jitter buffer size exceeds 100mS then the additional delay introduced can lead to conversational difficulty.

Author:
Oleg Kulikov, amit bhayani, baranowb
See Also:
Serialized Form

Constructor Summary
JitterBuffer(int jitter)
          Creates new instance of jitter.
 
Method Summary
 int getExpectedPacketCount()
          Gives the expected Packet Count at this moment
 double getInterArrivalJitter()
           
 int getJitter()
           
 RtpPacket getLastRtpPacketRecd()
           
 long getLastRtpPackReceivedTimeStamp()
           
 double getMaxJitter()
           
 int getSeqNoCycles()
           
 RtpPacket read(long timestamp)
           
 void reset()
           
 void setClock(RtpClock clock)
           
 void setFormat(org.mobicents.media.Format format)
           
 void softReset()
          Resets read/write aspects of buffer.
 void write(RtpPacket packet)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JitterBuffer

public JitterBuffer(int jitter)
Creates new instance of jitter.

Parameters:
fmt - the format of the received media
jitter - the size of the jitter in milliseconds.
Method Detail

setClock

public void setClock(RtpClock clock)

setFormat

public void setFormat(org.mobicents.media.Format format)

getJitter

public int getJitter()

getInterArrivalJitter

public double getInterArrivalJitter()

getMaxJitter

public double getMaxJitter()

write

public void write(RtpPacket packet)

softReset

public void softReset()
Resets read/write aspects of buffer. For instance after period of silence, buffer calls this method to prepare itself for continuation of stream.


reset

public void reset()

read

public RtpPacket read(long timestamp)
Returns:

getSeqNoCycles

public int getSeqNoCycles()

getLastRtpPacketRecd

public RtpPacket getLastRtpPacketRecd()

getLastRtpPackReceivedTimeStamp

public long getLastRtpPackReceivedTimeStamp()

getExpectedPacketCount

public int getExpectedPacketCount()
Gives the expected Packet Count at this moment

Returns:


Copyright © 2010. All Rights Reserved.