OPAL  Version 3.10.10
OpalJitterBufferThread Class Referenceabstract

#include <jitter.h>

Inheritance diagram for OpalJitterBufferThread:
OpalJitterBuffer RTP_JitterBuffer

Public Member Functions

 OpalJitterBufferThread (unsigned minJitterDelay, unsigned maxJitterDelay, unsigned timeUnits=8, PINDEX packetSize=2048)
 
 ~OpalJitterBufferThread ()
 
virtual PBoolean ReadData (RTP_DataFrame &frame)
 
virtual PBoolean OnReadPacket (RTP_DataFrame &frame)=0
 
void StartThread ()
 
- Public Member Functions inherited from OpalJitterBuffer
 OpalJitterBuffer (unsigned minJitterDelay, unsigned maxJitterDelay, unsigned timeUnits=8, PINDEX packetSize=2048)
 
virtual ~OpalJitterBuffer ()
 
void PrintOn (ostream &strm) const
 
void SetDelay (unsigned minJitterDelay, unsigned maxJitterDelay, PINDEX packetSize=2048)
 
void Reset ()
 
virtual PBoolean WriteData (const RTP_DataFrame &frame, const PTimeInterval &tick=0)
 
virtual PBoolean ReadData (RTP_DataFrame &frame, const PTimeInterval &tick=0)
 
DWORD GetCurrentJitterDelay () const
 
DWORD GetMinJitterDelay () const
 
DWORD GetMaxJitterDelay () const
 
unsigned GetTimeUnits () const
 
DWORD GetPacketsTooLate () const
 
DWORD GetBufferOverruns () const
 
DWORD GetMaxConsecutiveMarkerBits () const
 
void SetMaxConsecutiveMarkerBits (DWORD max)
 

Protected Member Functions

 PDECLARE_NOTIFIER (PThread, OpalJitterBufferThread, JitterThreadMain)
 
void WaitForThreadTermination ()
 Internal function to be called from derived class destructor. More...
 
- Protected Member Functions inherited from OpalJitterBuffer
DWORD CalculateRequiredTimestamp (DWORD playOutTimestamp) const
 
bool AdjustCurrentJitterDelay (int delta)
 

Protected Attributes

PThread * m_jitterThread
 
bool m_running
 
- Protected Attributes inherited from OpalJitterBuffer
unsigned m_timeUnits
 
PINDEX m_packetSize
 
DWORD m_minJitterDelay
 Minimum jitter delay in timestamp units. More...
 
DWORD m_maxJitterDelay
 Maximum jitter delay in timestamp units. More...
 
int m_jitterGrowTime
 Amaint to increase jitter delay by when get "late" packet. More...
 
DWORD m_jitterShrinkPeriod
 
int m_jitterShrinkTime
 Amount to shrink jitter delay by if consistently filled. More...
 
DWORD m_silenceShrinkPeriod
 Reduce jitter delay is silent for this long. More...
 
int m_silenceShrinkTime
 Amount to shrink jitter delay by if consistently silent. More...
 
DWORD m_jitterDriftPeriod
 
int m_currentJitterDelay
 
DWORD m_packetsTooLate
 
DWORD m_bufferOverruns
 
DWORD m_consecutiveMarkerBits
 
DWORD m_maxConsecutiveMarkerBits
 
DWORD m_consecutiveLatePackets
 
DWORD m_averageFrameTime
 
DWORD m_lastTimestamp
 
DWORD m_lastSyncSource
 
DWORD m_bufferFilledTime
 
DWORD m_bufferLowTime
 
DWORD m_bufferEmptiedTime
 
int m_timestampDelta
 
enum OpalJitterBuffer:: { ... }  m_synchronisationState
 
FrameMap m_frames
 
PMutex m_bufferMutex
 
RTP_JitterBufferAnalyser * m_analyser
 

Additional Inherited Members

- Protected Types inherited from OpalJitterBuffer
enum  { e_SynchronisationStart, e_SynchronisationFill, e_SynchronisationShrink, e_SynchronisationDone }
 
typedef std::map< DWORD, RTP_DataFrameFrameMap
 

Detailed Description

A descendant of the OpalJitterBuffer that starts a thread to read from something continuously and feed it into the jitter buffer.

Constructor & Destructor Documentation

◆ OpalJitterBufferThread()

OpalJitterBufferThread::OpalJitterBufferThread ( unsigned  minJitterDelay,
unsigned  maxJitterDelay,
unsigned  timeUnits = 8,
PINDEX  packetSize = 2048 
)
Parameters
minJitterDelayMinimum delay in RTP timestamp units
maxJitterDelayMaximum delay in RTP timestamp units
timeUnitsTime units, usually 8 or 16
packetSizeMax RTP packet size

◆ ~OpalJitterBufferThread()

OpalJitterBufferThread::~OpalJitterBufferThread ( )

Member Function Documentation

◆ OnReadPacket()

virtual PBoolean OpalJitterBufferThread::OnReadPacket ( RTP_DataFrame frame)
pure virtual

This class instance collects data from the outside world in this method.

Returns
true on successful read, false on faulty read.
Parameters
frameFrame read from the RTP session

Implemented in RTP_JitterBuffer.

◆ PDECLARE_NOTIFIER()

OpalJitterBufferThread::PDECLARE_NOTIFIER ( PThread  ,
OpalJitterBufferThread  ,
JitterThreadMain   
)
protected

◆ ReadData()

virtual PBoolean OpalJitterBufferThread::ReadData ( RTP_DataFrame frame)
virtual

Read a data frame from the jitter buffer. This function never blocks. If no data is available, an RTP packet with zero payload size is returned.

Override of base class so can terminate caller when shutting down.

Parameters
frameFrame to extract from jitter buffer

◆ StartThread()

void OpalJitterBufferThread::StartThread ( )

◆ WaitForThreadTermination()

void OpalJitterBufferThread::WaitForThreadTermination ( )
protected

Internal function to be called from derived class destructor.

Field Documentation

◆ m_jitterThread

PThread* OpalJitterBufferThread::m_jitterThread
protected

◆ m_running

bool OpalJitterBufferThread::m_running
protected

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