RTP_JitterBuffer Class Reference

#include <jitter.h>

List of all members.

Public Member Functions

 RTP_JitterBuffer (RTP_Session &session, unsigned minJitterDelay, unsigned maxJitterDelay, unsigned timeUnits=8, 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
unsigned GetTimeUnits () 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 timeUnits
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

Classes

class  Entry


Constructor & Destructor Documentation

RTP_JitterBuffer::RTP_JitterBuffer ( RTP_Session session,
unsigned  minJitterDelay,
unsigned  maxJitterDelay,
unsigned  timeUnits = 8,
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
timeUnits  Time units, usually 8 or 16
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.

DWORD RTP_JitterBuffer::GetJitterTime (  )  const [inline]

Get current delay for jitter buffer.

DWORD RTP_JitterBuffer::GetMaxConsecutiveMarkerBits (  )  const [inline]

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

DWORD RTP_JitterBuffer::GetPacketsTooLate (  )  const [inline]

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

unsigned RTP_JitterBuffer::GetTimeUnits (  )  const [inline]

Get time units.

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.

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]

PINDEX RTP_JitterBuffer::bufferSize [protected]

unsigned RTP_JitterBuffer::consecutiveBufferOverruns [protected]

PTimeInterval RTP_JitterBuffer::consecutiveEarlyPacketStartTime [protected]

DWORD RTP_JitterBuffer::consecutiveMarkerBits [protected]

unsigned RTP_JitterBuffer::currentDepth [protected]

DWORD RTP_JitterBuffer::currentJitterTime [protected]

Entry* RTP_JitterBuffer::currentWriteFrame [protected]

BOOL RTP_JitterBuffer::doJitterReductionImmediately [protected]

BOOL RTP_JitterBuffer::doneFirstWrite [protected]

BOOL RTP_JitterBuffer::doneFreeTrash [protected]

Entry* RTP_JitterBuffer::freeFrames [protected]

DWORD RTP_JitterBuffer::jitterCalc [protected]

unsigned RTP_JitterBuffer::jitterCalcPacketCount [protected]

PTimeInterval RTP_JitterBuffer::lastWriteTick [protected]

DWORD RTP_JitterBuffer::lastWriteTimestamp [protected]

DWORD RTP_JitterBuffer::maxConsecutiveMarkerBits [protected]

DWORD RTP_JitterBuffer::maxJitterTime [protected]

DWORD RTP_JitterBuffer::minJitterTime [protected]

Entry* RTP_JitterBuffer::newestFrame [protected]

Entry* RTP_JitterBuffer::oldestFrame [protected]

DWORD RTP_JitterBuffer::packetsTooLate [protected]

BOOL RTP_JitterBuffer::preBuffering [protected]

RTP_Session& RTP_JitterBuffer::session [protected]

BOOL RTP_JitterBuffer::shuttingDown [protected]

DWORD RTP_JitterBuffer::targetJitterTime [protected]

unsigned RTP_JitterBuffer::timeUnits [protected]


The documentation for this class was generated from the following file:
Generated on Mon Sep 25 16:21:54 2006 for OPAL by  doxygen 1.4.7