2.2.5 RTVideo FEC RTP Payload Format

The RTVideo FEC RTP Payload Format header can be considered a special case of the RTVideo Extended 2 RTP Payload Format (section 2.2.4), where the S field MUST be set to zero and the E field MUST be set to one.

This RTVideo FEC Payload Format header has a fixed size of 8 bytes.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

A

B

C

D

E

F

G

H

I

J

HiFC

DV

K

FrameCounter

RefFrameCounter

L

M

N<3>

PacketNumberLo

HiLPL

EndOffset

LastPacketLengthLo

A - M (1 bit): Payload format mode. This field MUST be set to one in the RTVideo FEC RTP Payload Format.

B – C (1 bit): The Cached frame flag. A value of one specifies a cached frame. A value of zero specifies the frame is not a cached frame. The decoder on the receiver side MUST cache the cached frame because the next SP-frame references it.

C – SP (1 bit): Super P-frame (SP-frame) flag. A value of one specifies an SP-frame. A value of zero specifies the frame is not an SP-frame.

D – L (1 bit): Last packet flag. Indicates whether this packet is the last packet of the video frame, excluding FEC metadata packets. A value of one specifies the last packet. A value of zero specifies it is not the last packet.

E – O (1 bit): MUST be set to one.

F – I (1 bit): The I-frame flag. Indicates whether the frame is an I-frame. A value of one indicates the frame is an I-frame. A value of zero indicates that the frame is not an I-frame, but rather a SP-frame, P-frame, or B-frame.

G - S (1 bit): Codec headers presence flag. Indicates presence of the Codec Headers. A value of one indicates the Codec Headers Length field is present. A value of zero indicates the Codec Headers Length field is not present. The S field MUST be set to zero in the RTVideo FEC RTP Payload Format. This means the codec headers size and the codec headers data fields MUST NOT be present in the RTVideo FEC RTP Payload Format.

H – F (1 bit): First packet flag. Indicates whether the packet is the first packet of the video frame, excluding FEC metadata packets. A value of one indicates the packet is the first packet. A value of zero indicates it is not the first packet.

I - M2 (1 bit): Payload format mode2 flag. This field MUST be set to one in the in the RTVideo FEC RTP Payload Format.

HiRFC (2 bits): MUST be set to zero. The HiRFC field and RefFrameCounter field together specify the video frame counter (10 bits) for the reference frame or the reference frames, if the current frame is a B-frame, of this frame.

If the video frame is an I-frame, P-frame, or SP-frame, the whole 10-bit field specifies a frame counter.

The HiRFC field specifies the 2 high bits of the counter. The RefFrameCounter specifies the 8 low bits.

If the video frame is a B-frame, the HiRFC field MUST be set to zero. The 4 high bits of the RefFrameCounter specify one reference frame counter delta, RefFrameCounterDelta1, and the 4 low bits of the RefFrameCounter specify another reference frame counter delta, RefFrameCounterDelta2. These two reference counter delta values correspond to the frame counters, referred to as RefFrameCounter1 and RefFrameCounter2, of the two reference frames for the B-frame, respectively.

The two reference frame counters are calculated by subtracting the frame counter delta from the frame counter for the B-frame. If the B-frame references a single frame only, the two reference counters MUST be the same.

HiFC (2 bits): MUST be set to zero. The HiFC field and the FrameCounter field together specify the video frame counter (10 bits) for the video frame. The HiFC field specifies the 2 high bits. FrameCounter specifies the 8 low bits.

DV (2 bits): The FEC version number. The value ranges from zero to three. The version number SHOULD<4> be 00 or 01 in the RTVideo FEC RTP Payload Format. Currently, it is set to zero for the first FEC packet and equal to 01 for subsequent FEC packets of the same frame.

K - E (1 bit): The ExtraData field. In this document, the FEC metadata is considered to be extra data. A value of one specifies the packet is an FEC metadata packet. This field MUST be set to one in the RTVideo FEC RTP Payload Format.

FrameCounter (1 byte): The HiFC field and the FrameCounter field together specify the video frame counter (10 bits) for the video frame. The HiFC field specifies the 2 high bits. FrameCounter specifies the 8 low bits.

RefFrameCounter (1 byte): MUST be set to zero.

L - M3 (1 bits): Payload format mode3 flag. This field MUST be set to zero in the RTVideo FEC Payload Format.

M - HiPN (2 bits): The HiPN field and PacketNumberLo field specify the number of video packets (10 bits) the video frame is fragmented into. The HiPN field specifies the 2 high bits. The PacketNumberLo field specifies the 8 low bits.

N - Reserved/FECPacketsNumber (5 bits): The semantics of these bits depends on the value of DV. If the value of DV is not "01", this is a field reserved for future use and MUST be set to zero by the sender and MUST be ignored by the receiver. If the value of DV is "01", this field represents a FECPacketsNumber field specifying the total number of contiguous FEC packets, generated by the FEC algorithm, associated with the packets conveying the video frame. The maximum number of FEC packets is limited to 31. If the value of DV is "01", FECPacketsNumber MUST NOT<5> be set to zero.

PacketNumberLo (8 bits): The HiPN field and PacketNumberLo field specify the number of video packets (10 bits) the video frame is fragmented into. The HiPN field specifies the 2 high bits. The PacketNumberLo field specifies the 8 low bits.

HiLPL (3 bits): The HiLPL field and LastPacketLengthLo field specify the size (11 bits) of the last video data packet. Both the video payload header size and the video payload size are counted. The HiLPL field specifies the three high bits. The LastPacketLengthLo field specifies the eight low bits.

EndOffset (5 bits): Indicates the FEC metadata packet distance from the last video data packet, minus one. For example, a video frame is fragmented into five video data packets. One FEC metadata packet is added after the five video data packets. These six packets are indexed starting at zero. The index of the first data packet is zero. The index of the last data packet is four. The index of the FEC metadata packet is 5. The EndOffset field is set to 5-4-1, or zero.

LastPacketLengthLo (8 bits): The HiLPL field and LastPacketLengthLo field specify the size (11 bits) of the last video data packet. Both the video payload header size and the video payload size are counted. The HiLPL field specifies the three high bits. The LastPacketLengthLo field specifies the eight low bits.