SmartJitterBufferT Class |
Namespace: StreamCoders.Rtp
The SmartJitterBufferT type exposes the following members.
Name | Description | |
---|---|---|
SmartJitterBufferT(TimeSpan) | Initializes a new instance of the SmartJitterBufferT class | |
SmartJitterBufferT(TimeSpan, PlayoutBuffer) | Initializes a new instance of the SmartJitterBufferT class |
Name | Description | |
---|---|---|
CheckMarkersForCompletion |
Instructs the jitter that a criteria for a complete frame is that it is terminated by a packet that has its marker
bit set.
| |
CheckSequenceGaps |
Instructs the jitter that a criteria for a complete frame is that the frame has no sequence gaps. This should
always be true unless highly unreliable transports are used.
| |
CurrentIncompleteCount |
The current number of incomplete frames in the jitter.
| |
FrameExpiry |
The current frame expiry time used for frames.
| |
Name |
Optional name for the jitter.
| |
OutputQueue | ||
SkipLateOrIncompleteFrames |
Instructs the jitter to drop a frame when it is incomplete and expired.
| |
TotalCompleteCount |
The total number of completed frames.
| |
TotalDroppedFramesCount |
The total number of frames dropped.
|
Name | Description | |
---|---|---|
AddPacket(RtpPacket) |
Adds a packet to the jitter
| |
AddPacketT1(RtpPacket) |
Addds a packet to the jitter
| |
Clear |
Clears the jitter of complete and incomplete frames.
| |
SetPlayoutBuffer |
Sets the playout buffer to use in order to assign presentation times.
|
Name | Description | |
---|---|---|
FrameDropped |
Optional Event informing of a frame being dropped.
|
Name | Description | |
---|---|---|
Copy | Overloaded.
Creates a copy of the object.
(Defined by ObjectExtensions.) | |
Copy(Object) | Overloaded.
Creates a deep copy of the object using the supplied object as a target for the copy operation.
(Defined by ObjectExtensions.) |
The jitters goal is to minimize latency with the constraint to provide complete frames. It will automatically adjust the time a frame spends inside the jitter buffer depending on the average time it takes for other previous frames to complete.
The jitter buffer also has a global duration whos value must not go beyond the value set in the constructor parameter globalThresholdDuration. If the global duration exceeds that value, all frames in the buffer whos age exceed that threshold are automatically purged. This ensures sane levels of memory consumption in situation where frames are incomplete due to dropped packets.
It is mandatory to use a playout buffer on the packets being processed by the jitter buffer. The playout buffer should either pre-process the packets before being fed to the jitter buffer or SetPlayoutBuffer must be called in order to allow the jitter buffer to pre-process all packets itself.