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().