RTP_JitterBuffer Class Reference

#include <jitter.h>

List of all members.

Classes

class  Entry

Public Member Functions

 RTP_JitterBuffer (RTP_Session &session, unsigned minJitterDelay, unsigned maxJitterDelay, PINDEX stackSize=30000)
 ~RTP_JitterBuffer ()
void SetDelay (unsigned minJitterDelay, unsigned maxJitterDelay)
void UseImmediateReduction (BOOL state)
virtual BOOL ReadData (DWORD timestamp, RTP_DataFrame &frame)
DWORD GetJitterTime () const
DWORD GetPacketsTooLate () const
DWORD GetBufferOverruns () const
DWORD GetMaxConsecutiveMarkerBits () const
void SetMaxConsecutiveMarkerBits (DWORD max)

Protected Member Functions

virtual void Main ()

Protected Attributes

RTP_Sessionsession
PINDEX bufferSize
DWORD minJitterTime
DWORD maxJitterTime
DWORD maxConsecutiveMarkerBits
unsigned currentDepth
DWORD currentJitterTime
DWORD packetsTooLate
unsigned bufferOverruns
unsigned consecutiveBufferOverruns
DWORD consecutiveMarkerBits
PTimeInterval consecutiveEarlyPacketStartTime
DWORD lastWriteTimestamp
PTimeInterval lastWriteTick
DWORD jitterCalc
DWORD targetJitterTime
unsigned jitterCalcPacketCount
BOOL doJitterReductionImmediately
BOOL doneFreeTrash
EntryoldestFrame
EntrynewestFrame
EntryfreeFrames
EntrycurrentWriteFrame
PMutex bufferMutex
BOOL shuttingDown
BOOL preBuffering
BOOL doneFirstWrite
RTP_JitterBufferAnalyser * analyser


Constructor & Destructor Documentation

RTP_JitterBuffer::RTP_JitterBuffer ( RTP_Session session,
unsigned  minJitterDelay,
unsigned  maxJitterDelay,
PINDEX  stackSize = 30000 
)

Parameters:
session Associated RTP session tor ead data from
minJitterDelay Minimum delay in RTP timestamp units
maxJitterDelay Maximum delay in RTP timestamp units
stackSize Stack size for jitter thread

RTP_JitterBuffer::~RTP_JitterBuffer (  ) 


Member Function Documentation

DWORD RTP_JitterBuffer::GetBufferOverruns (  )  const [inline]

Get total number received packets that overran the jitter buffer.

References bufferOverruns.

DWORD RTP_JitterBuffer::GetJitterTime (  )  const [inline]

Get current delay for jitter buffer.

References currentJitterTime.

DWORD RTP_JitterBuffer::GetMaxConsecutiveMarkerBits (  )  const [inline]

Get maximum consecutive marker bits before buffer starts to ignore them.

References maxConsecutiveMarkerBits.

DWORD RTP_JitterBuffer::GetPacketsTooLate (  )  const [inline]

Get total number received packets too late to go into jitter buffer.

References packetsTooLate.

virtual void RTP_JitterBuffer::Main (  )  [protected, virtual]

virtual BOOL RTP_JitterBuffer::ReadData ( DWORD  timestamp,
RTP_DataFrame frame 
) [virtual]

Read a data frame from the RTP channel. Any control frames received are dispatched to callbacks and are not returned by this function. It will block until a data frame is available or an error occurs.

Parameters:
timestamp Timestamp to read from buffer.
frame Frame read from the RTP session

void RTP_JitterBuffer::SetDelay ( unsigned  minJitterDelay,
unsigned  maxJitterDelay 
)

Set the maximum delay the jitter buffer will operate to.

Parameters:
minJitterDelay Minimum delay in RTP timestamp units
maxJitterDelay Maximum delay in RTP timestamp units

void RTP_JitterBuffer::SetMaxConsecutiveMarkerBits ( DWORD  max  )  [inline]

Set maximum consecutive marker bits before buffer starts to ignore them.

References maxConsecutiveMarkerBits.

void RTP_JitterBuffer::UseImmediateReduction ( BOOL  state  )  [inline]


Member Data Documentation

RTP_JitterBufferAnalyser* RTP_JitterBuffer::analyser [protected]

PMutex RTP_JitterBuffer::bufferMutex [protected]

unsigned RTP_JitterBuffer::bufferOverruns [protected]

Referenced by GetBufferOverruns().

PINDEX RTP_JitterBuffer::bufferSize [protected]

unsigned RTP_JitterBuffer::currentDepth [protected]

Referenced by GetJitterTime().

Referenced by UseImmediateReduction().

DWORD RTP_JitterBuffer::jitterCalc [protected]

PTimeInterval RTP_JitterBuffer::lastWriteTick [protected]

Referenced by GetPacketsTooLate().


The documentation for this class was generated from the following file:

Generated on Mon Apr 27 11:46:39 2009 for OpenH323 by  doxygen 1.5.8