31 #ifndef OPAL_RTP_JITTER_H
32 #define OPAL_RTP_JITTER_H
69 unsigned minJitterDelay = 40,
70 unsigned maxJitterDelay = 250
94 unsigned minJitterDelay,
95 unsigned maxJitterDelay,
96 unsigned timeUnits = 8,
97 PINDEX packetSize = 2048
98 ) :
Params(minJitterDelay, maxJitterDelay)
139 virtual void Close() = 0;
149 const PTimeInterval & tick = PTimer::Tick()
158 const PTimeInterval & timeout = PMaxTimeInterval
159 PTRACE_PARAM(,
const PTimeInterval & tick = PMaxTimeInterval)
248 virtual void Close();
258 const PTimeInterval & tick = PTimer::Tick()
267 const PTimeInterval & timeout = PMaxTimeInterval
268 PTRACE_PARAM(,
const PTimeInterval & tick = PMaxTimeInterval)
337 typedef std::map<RTP_Timestamp, RTP_DataFrame>
FrameMap;
343 PTimeInterval m_lastRemoveTick;
345 static unsigned sm_EveryPacketLogLevel;
369 virtual void Close();
379 const PTimeInterval & tick = PTimer::Tick()
388 const PTimeInterval & timeout = PMaxTimeInterval
389 PTRACE_PARAM(,
const PTimeInterval & tick = PMaxTimeInterval)
398 #endif // OPAL_RTP_JITTER_H
Definition: manager.h:150
virtual RTP_Timestamp GetPacketTime() const
unsigned m_currentJitterDelay
Current/initial delay in milliseconds.
Definition: jitter.h:59
RTP_Timestamp m_minJitterDelay
Minimum jitter delay in timestamp units.
Definition: jitter.h:194
OpalAudioJitterBuffer(const Init &init)
RTP_SyncSourceId m_lastSyncSource
Definition: jitter.h:323
int m_silenceShrinkTime
Amount to shrink jitter delay by if consistently silent.
Definition: jitter.h:306
virtual RTP_Timestamp GetPacketTime() const
Definition: jitter.h:168
void PrintOn(ostream &strm) const
OpalNonJitterBuffer(const Init &init)
PTimeInterval m_lastInsertTick
Definition: jitter.h:341
virtual bool ReadData(RTP_DataFrame &frame, const PTimeInterval &timeout=PMaxTimeInterval)
RTP_Timestamp m_jitterDriftPeriod
Definition: jitter.h:307
unsigned m_silenceShrinkTime
Amount to shrink jitter delay by if consistently silent.
Definition: jitter.h:64
RTP_Timestamp GetMinJitterDelay() const
PParamFactory< OpalJitterBuffer, OpalJitterBuffer::Init, OpalMediaType > OpalJitterBufferFactory
Definition: jitter.h:206
friend ostream & operator<<(ostream &strm, const AdjustResult adjusted)
unsigned m_consecutiveLatePackets
Definition: jitter.h:314
virtual bool WriteData(const RTP_DataFrame &frame, const PTimeInterval &tick=PTimer::Tick())
int m_jitterShrinkTime
Amount to shrink jitter delay by if consistently filled.
Definition: jitter.h:304
enum OpalAudioJitterBuffer::@37 m_synchronisationState
unsigned m_consecutiveEmpty
Definition: jitter.h:316
FrameMap m_frames
Definition: jitter.h:338
unsigned m_maxConsecutiveMarkerBits
Definition: jitter.h:313
static OpalJitterBuffer * Create(const OpalMediaType &mediaType, const Init &init)
Init(const OpalManager &manager, unsigned timeUnits)
RTP_Timestamp m_lastTimestamp
Definition: jitter.h:322
std::map< RTP_Timestamp, RTP_DataFrame > FrameMap
Definition: jitter.h:337
RTP_Timestamp m_silenceShrinkPeriod
Reduce jitter delay is silent for this long.
Definition: jitter.h:305
RTP_Timestamp m_packetTime
Definition: jitter.h:320
unsigned m_timeUnits
Time units, usually 8 or 16.
Definition: jitter.h:105
unsigned m_jitterShrinkTime
Amount to reduce buffer delay.
Definition: jitter.h:62
virtual bool WriteData(const RTP_DataFrame &frame, const PTimeInterval &tick=PTimer::Tick())
OpalMediaType m_mediaType
Definition: jitter.h:104
unsigned m_minJitterDelay
Minimum delay in milliseconds.
Definition: jitter.h:57
int m_jitterGrowTime
Amount to increase jitter delay by when get "late" packet.
Definition: jitter.h:301
uint16_t RTP_SequenceNumber
Definition: rtp.h:45
const unsigned m_timeUnits
Definition: jitter.h:192
PSemaphore m_frameCount
Definition: jitter.h:339
unsigned m_overrunFactor
Multiplier on JB length (in packets) before throwing away packets.
Definition: jitter.h:66
unsigned m_packetsTooLate
Definition: jitter.h:196
bool m_closed
Definition: jitter.h:310
Init(const OpalMediaType &mediaType, unsigned minJitterDelay, unsigned maxJitterDelay, unsigned timeUnits=8, PINDEX packetSize=2048)
Definition: jitter.h:92
RTP_Timestamp CalculateRequiredTimestamp(RTP_Timestamp playOutTimestamp) const
Initialisation information.
Definition: jitter.h:86
OpalJitterBuffer(const Init &init)
PINDEX m_packetSize
Max RTP packet size.
Definition: jitter.h:106
uint64_t m_frameTimeSum
Definition: jitter.h:319
Params(unsigned minJitterDelay=40, unsigned maxJitterDelay=250)
Definition: jitter.h:68
virtual ~OpalJitterBuffer()
int m_lastBufferSize
Definition: jitter.h:324
virtual ~OpalAudioJitterBuffer()
AdjustResult
Definition: jitter.h:291
unsigned GetPacketsTooLate() const
Null jitter buffer, just a simpple queue.
Definition: jitter.h:351
RTP_Timestamp GetMaxJitterDelay() const
int m_timestampDelta
Definition: jitter.h:328
unsigned GetMaxConsecutiveMarkerBits() const
Definition: jitter.h:281
virtual RTP_Timestamp GetCurrentJitterDelay() const
Definition: jitter.h:164
RTP_Timestamp m_bufferEmptiedTime
Definition: jitter.h:327
PDECLARE_MUTEX(m_bufferMutex)
unsigned m_consecutiveMarkerBits
Definition: jitter.h:312
unsigned m_jitterShrinkPeriod
Deadband of low jitter before shrink delay.
Definition: jitter.h:61
unsigned m_jitterDriftPeriod
Time over which repeated undeflows cause packet to be dropped.
Definition: jitter.h:65
RTP_Timestamp m_maxJitterDelay
Maximum jitter delay in timestamp units.
Definition: jitter.h:195
uint32_t RTP_Timestamp
Definition: rtp.h:44
unsigned GetTimeUnits() const
Definition: jitter.h:172
unsigned m_bufferOverruns
Definition: jitter.h:197
unsigned GetBufferOverruns() const
unsigned m_frameTimeCount
Definition: jitter.h:318
RTP_Timestamp m_bufferStaticTime
Definition: jitter.h:325
virtual bool ReadData(RTP_DataFrame &frame, const PTimeInterval &timeout=PMaxTimeInterval)=0
virtual void SetDelay(const Init &init)
void SetMaxConsecutiveMarkerBits(unsigned max)
Definition: jitter.h:285
AdjustResult AdjustCurrentJitterDelay(int delta)
virtual bool WriteData(const RTP_DataFrame &frame, const PTimeInterval &tick=PTimer::Tick())=0
unsigned m_consecutiveOverflows
Definition: jitter.h:315
virtual RTP_Timestamp GetCurrentJitterDelay() const
virtual bool ReadData(RTP_DataFrame &frame, const PTimeInterval &timeout=PMaxTimeInterval)
unsigned m_silenceShrinkPeriod
Reduce jitter delay is silent for this long.
Definition: jitter.h:63
RTP_SequenceNumber m_lastSequenceNum
Definition: jitter.h:321
int m_currentJitterDelay
Definition: jitter.h:311
Analyser * m_analyser
Definition: jitter.h:199
unsigned m_jitterGrowTime
Amount to increase jitter delay by when get "late" packet.
Definition: jitter.h:60
PINDEX m_packetSize
Definition: jitter.h:193
unsigned m_overrunFactor
Definition: jitter.h:308
uint32_t RTP_SyncSourceId
Definition: rtp.h:46
RTP_Timestamp m_jitterShrinkPeriod
consistently filled before shrinking
Definition: jitter.h:302
unsigned m_maxJitterDelay
Maximum delay in milliseconds.
Definition: jitter.h:58
PSyncQueue< RTP_DataFrame > m_queue
Definition: jitter.h:394
RTP_Timestamp m_bufferLowTime
Definition: jitter.h:326
virtual void SetDelay(const Init &init)