#include <jitter.h>
Public Member Functions | |
| RTP_JitterBuffer (RTP_Session &session, unsigned minJitterDelay, unsigned maxJitterDelay, 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 |
| DWORD | GetPacketsTooLate () const |
| DWORD | GetBufferOverruns () const |
| DWORD | GetMaxConsecutiveMarkerBits () const |
| void | SetMaxConsecutiveMarkerBits (DWORD max) |
| void | Resume () |
| PDECLARE_NOTIFIER (PThread, RTP_JitterBuffer, JitterThreadMain) | |
Protected Member Functions | |
| BOOL | Init (Entry *¤tReadFrame, BOOL &markerWarning) |
| BOOL | PreRead (Entry *¤tReadFrame, BOOL &markerWarning) |
| BOOL | OnRead (Entry *¤tReadFrame, BOOL &markerWarning, BOOL loop) |
| void | DeInit (Entry *¤tReadFrame, BOOL &markerWarning) |
Protected Attributes | |
| RTP_Session & | session |
| PINDEX | bufferSize |
| DWORD | minJitterTime |
| DWORD | maxJitterTime |
| DWORD | maxConsecutiveMarkerBits |
| 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 |
| Entry * | oldestFrame |
| Entry * | newestFrame |
| Entry * | freeFrames |
| Entry * | currentWriteFrame |
| PMutex | bufferMutex |
| BOOL | shuttingDown |
| BOOL | preBuffering |
| BOOL | doneFirstWrite |
| RTP_JitterBufferAnalyser * | analyser |
| PThread * | jitterThread |
| PINDEX | jitterStackSize |
Friends | |
| class | RTP_AggregatedHandle |
Classes | |
| class | Entry |
| RTP_JitterBuffer::RTP_JitterBuffer | ( | RTP_Session & | session, | |
| unsigned | minJitterDelay, | |||
| unsigned | maxJitterDelay, | |||
| PINDEX | stackSize = 30000 | |||
| ) |
| session | Associated RTP session tor ead data from |
| minJitterDelay | Minimum delay in RTP timestamp units |
| maxJitterDelay | Maximum delay in RTP timestamp units |
| stackSize | Stack size for jitter thread |
| RTP_JitterBuffer::~RTP_JitterBuffer | ( | ) |
| void RTP_JitterBuffer::SetDelay | ( | unsigned | minJitterDelay, | |
| unsigned | maxJitterDelay | |||
| ) |
Set the maximum delay the jitter buffer will operate to.
| minJitterDelay | Minimum delay in RTP timestamp units |
| maxJitterDelay | Maximum delay in RTP timestamp units |
| void RTP_JitterBuffer::UseImmediateReduction | ( | BOOL | state | ) | [inline] |
References doJitterReductionImmediately.
| 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.
| timestamp | Timestamp to read from buffer. |
| frame | Frame read from the RTP session |
| DWORD RTP_JitterBuffer::GetJitterTime | ( | ) | const [inline] |
Get current delay for jitter buffer.
References currentJitterTime.
| DWORD RTP_JitterBuffer::GetPacketsTooLate | ( | ) | const [inline] |
Get total number received packets too late to go into jitter buffer.
References packetsTooLate.
| DWORD RTP_JitterBuffer::GetBufferOverruns | ( | ) | const [inline] |
Get total number received packets that overran the jitter buffer.
References bufferOverruns.
| DWORD RTP_JitterBuffer::GetMaxConsecutiveMarkerBits | ( | ) | const [inline] |
Get maximum consecutive marker bits before buffer starts to ignore them.
References maxConsecutiveMarkerBits.
| void RTP_JitterBuffer::SetMaxConsecutiveMarkerBits | ( | DWORD | max | ) | [inline] |
Set maximum consecutive marker bits before buffer starts to ignore them.
References maxConsecutiveMarkerBits.
| void RTP_JitterBuffer::Resume | ( | ) |
Start seperate jitter thread
| RTP_JitterBuffer::PDECLARE_NOTIFIER | ( | PThread | , | |
| RTP_JitterBuffer | , | |||
| JitterThreadMain | ||||
| ) |
| BOOL RTP_JitterBuffer::Init | ( | Entry *& | currentReadFrame, | |
| BOOL & | markerWarning | |||
| ) | [protected] |
| BOOL RTP_JitterBuffer::PreRead | ( | Entry *& | currentReadFrame, | |
| BOOL & | markerWarning | |||
| ) | [protected] |
| BOOL RTP_JitterBuffer::OnRead | ( | Entry *& | currentReadFrame, | |
| BOOL & | markerWarning, | |||
| BOOL | loop | |||
| ) | [protected] |
| void RTP_JitterBuffer::DeInit | ( | Entry *& | currentReadFrame, | |
| BOOL & | markerWarning | |||
| ) | [protected] |
friend class RTP_AggregatedHandle [friend] |
RTP_Session& RTP_JitterBuffer::session [protected] |
PINDEX RTP_JitterBuffer::bufferSize [protected] |
DWORD RTP_JitterBuffer::minJitterTime [protected] |
DWORD RTP_JitterBuffer::maxJitterTime [protected] |
DWORD RTP_JitterBuffer::maxConsecutiveMarkerBits [protected] |
Referenced by GetMaxConsecutiveMarkerBits(), and SetMaxConsecutiveMarkerBits().
unsigned RTP_JitterBuffer::currentDepth [protected] |
DWORD RTP_JitterBuffer::currentJitterTime [protected] |
Referenced by GetJitterTime().
DWORD RTP_JitterBuffer::packetsTooLate [protected] |
Referenced by GetPacketsTooLate().
unsigned RTP_JitterBuffer::bufferOverruns [protected] |
Referenced by GetBufferOverruns().
unsigned RTP_JitterBuffer::consecutiveBufferOverruns [protected] |
DWORD RTP_JitterBuffer::consecutiveMarkerBits [protected] |
PTimeInterval RTP_JitterBuffer::consecutiveEarlyPacketStartTime [protected] |
DWORD RTP_JitterBuffer::lastWriteTimestamp [protected] |
PTimeInterval RTP_JitterBuffer::lastWriteTick [protected] |
DWORD RTP_JitterBuffer::jitterCalc [protected] |
DWORD RTP_JitterBuffer::targetJitterTime [protected] |
unsigned RTP_JitterBuffer::jitterCalcPacketCount [protected] |
BOOL RTP_JitterBuffer::doJitterReductionImmediately [protected] |
Referenced by UseImmediateReduction().
BOOL RTP_JitterBuffer::doneFreeTrash [protected] |
Entry* RTP_JitterBuffer::oldestFrame [protected] |
Entry* RTP_JitterBuffer::newestFrame [protected] |
Entry* RTP_JitterBuffer::freeFrames [protected] |
Entry* RTP_JitterBuffer::currentWriteFrame [protected] |
PMutex RTP_JitterBuffer::bufferMutex [protected] |
BOOL RTP_JitterBuffer::shuttingDown [protected] |
BOOL RTP_JitterBuffer::preBuffering [protected] |
BOOL RTP_JitterBuffer::doneFirstWrite [protected] |
RTP_JitterBufferAnalyser* RTP_JitterBuffer::analyser [protected] |
PThread* RTP_JitterBuffer::jitterThread [protected] |
PINDEX RTP_JitterBuffer::jitterStackSize [protected] |
1.5.5