Class Vp8Depacketizer
Puts VP8 frames together from RTP packets, RFC 7741: the packets of a frame share a timestamp, the first starts partition 0, and the last has the marker bit. Packets may come out of order; frames are given in order.
Inherited Members
Namespace: Uniform.Matrix.WebRtc.Rtp
Assembly: Uniform.Matrix.WebRtc.dll
Syntax
public sealed class Vp8Depacketizer
Remarks
A frame waits while packets before it may still come, until the newest packet is a reorder window past the gap: then they count as lost. While a keyframe is needed, a complete one does not wait, as it decodes on its own. A frame after lost packets cannot be decoded, as it predicts from the frames before; from then on only a keyframe is given, and NeedsKeyframe tells the caller to ask the sender for one, e.g. with an RTCP PLI.
Constructors
| Edit this page View SourceVp8Depacketizer(int, byte?)
Puts VP8 frames together from RTP packets, RFC 7741: the packets of a frame share a timestamp, the first starts partition 0, and the last has the marker bit. Packets may come out of order; frames are given in order.
Declaration
public Vp8Depacketizer(int reorderWindow = 64, byte? orientationId = null)
Parameters
| Type | Name | Description |
|---|---|---|
| int | reorderWindow | How many packets past a gap may arrive before the missing ones count as lost. |
| byte? | orientationId | The header extension ID of the video orientation, whose rotation the frames carry from their last packet; null when not used. |
Remarks
A frame waits while packets before it may still come, until the newest packet is a reorder window past the gap: then they count as lost. While a keyframe is needed, a complete one does not wait, as it decodes on its own. A frame after lost packets cannot be decoded, as it predicts from the frames before; from then on only a keyframe is given, and NeedsKeyframe tells the caller to ask the sender for one, e.g. with an RTCP PLI.
Properties
| Edit this page View SourceNeedsKeyframe
Whether the frames given so far do not let the next inter frame decode, as at the start or after a loss: only a keyframe will be given.
Declaration
public bool NeedsKeyframe { get; }
Property Value
| Type | Description |
|---|---|
| bool |
Methods
| Edit this page View SourcePush(RtpPacket)
Take a packet; return the frames that are now ready in order, usually none or one.
Declaration
public IReadOnlyList<Vp8EncodedFrame> Push(RtpPacket packet)
Parameters
| Type | Name | Description |
|---|---|---|
| RtpPacket | packet |
Returns
| Type | Description |
|---|---|
| IReadOnlyList<Vp8EncodedFrame> |