| 
    OPAL
    Version 3.14.3
    
   | 
 
#include <jitter.h>

Data Structures | |
| struct | Init | 
| Initialisation information.  More... | |
Public Member Functions | |
Construction  | |
| OpalJitterBuffer (const Init &init) | |
| virtual | ~OpalJitterBuffer () | 
Overrides from PObject  | |
| void | PrintOn (ostream &strm) const | 
Operations  | |
| virtual void | Start () | 
| Start jitter buffer.  More... | |
| void | SetDelay (const Init &init) | 
| void | Reset () | 
| virtual PBoolean | WriteData (const RTP_DataFrame &frame, PTimeInterval tick=PTimer::Tick()) | 
| virtual PBoolean | ReadData (RTP_DataFrame &frame, PTimeInterval tick=PTimer::Tick()) | 
| 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 Types | |
| enum | { e_SynchronisationStart, e_SynchronisationFill, e_SynchronisationShrink, e_SynchronisationDone } | 
| typedef std::map< DWORD,  RTP_DataFrame >  | FrameMap | 
Protected Member Functions | |
| DWORD | CalculateRequiredTimestamp (DWORD playOutTimestamp) const | 
| bool | AdjustCurrentJitterDelay (int delta) | 
This is an Abstract jitter buffer, which can be used simply in any application. The user is required to use a descendant of this class, and provide a "OnReadPacket" method, so that network packets can be placed in this class instance
      
  | 
  protected | 
      
  | 
  protected | 
| OpalJitterBuffer::OpalJitterBuffer | ( | const Init & | init | ) | 
Constructor for this jitter buffer. The size of this buffer can be altered later with the SetDelay method
| init | Initialisation information | 
      
  | 
  virtual | 
Destructor, which closes this down and deletes the internal list of frames
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  inline | 
Get total number received packets that overran the jitter buffer.
References m_bufferOverruns.
      
  | 
  inline | 
Get current delay for jitter buffer.
References m_currentJitterDelay.
      
  | 
  inline | 
Get maximum consecutive marker bits before buffer starts to ignore them.
References m_maxConsecutiveMarkerBits.
      
  | 
  inline | 
Get maximum delay for jitter buffer.
References m_maxJitterDelay.
      
  | 
  inline | 
Get minimum delay for jitter buffer.
References m_minJitterDelay.
      
  | 
  inline | 
Get total number received packets too late to go into jitter buffer.
References m_packetsTooLate.
      
  | 
  inline | 
Get time units.
References m_timeUnits.
| void OpalJitterBuffer::PrintOn | ( | ostream & | strm | ) | const | 
Report the statistics for this jitter instance
      
  | 
  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.
| frame | Frame to extract from jitter buffer | 
| tick | Real time tick for packet removal | 
| void OpalJitterBuffer::Reset | ( | ) | 
Reset jitter buffer.
| void OpalJitterBuffer::SetDelay | ( | const Init & | init | ) | 
Set the maximum delay the jitter buffer will operate to.
| init | Initialisation information | 
      
  | 
  inline | 
Set maximum consecutive marker bits before buffer starts to ignore them.
References m_maxConsecutiveMarkerBits.
      
  | 
  inlinevirtual | 
Start jitter buffer.
Reimplemented in OpalJitterBufferThread.
      
  | 
  virtual | 
Write data frame from the RTP channel.
| frame | Frame to feed into jitter buffer | 
| tick | Real time tick for packet arrival | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by GetBufferOverruns().
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by GetCurrentJitterDelay().
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
Amount to increase jitter delay by when get "late" packet.
      
  | 
  protected | 
Period (in timestamp units) over which buffer is
consistently filled before shrinking
      
  | 
  protected | 
Amount to shrink jitter delay by if consistently filled.
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by GetMaxConsecutiveMarkerBits(), and SetMaxConsecutiveMarkerBits().
      
  | 
  protected | 
Maximum jitter delay in timestamp units.
Referenced by GetMaxJitterDelay().
      
  | 
  protected | 
Minimum jitter delay in timestamp units.
Referenced by GetMinJitterDelay().
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by GetPacketsTooLate().
      
  | 
  protected | 
Reduce jitter delay is silent for this long.
      
  | 
  protected | 
Amount to shrink jitter delay by if consistently silent.
| enum { ... } OpalJitterBuffer::m_synchronisationState | 
      
  | 
  protected | 
      
  | 
  protected | 
Referenced by GetTimeUnits().