Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
If the RTP packet contains FEC data, then the RTP packet MUST be discarded.
If the RTP packet contains ASF data, then the client MUST insert the RTP packet into the list in the RTP-Order-List variable unless the RTP packet has the same value for the Sequence Number field as a RTP packet already present in the RTP-Order-List variable. RTP packets that are inserted into RTP-Order-List MUST be inserted in numerical order based on the Sequence Number field (defined in [RFC3550] section 5.1) of the RTP packets. The client MUST correctly handle wraparound of the Sequence Number field. For example, if one RTP packet has Sequence Number 0xFFFF then the next RTP packet in numerical order will have a Sequence Number field value of 0x0000.
As an example, the following method can be used to correctly handle wraparound of the sequence number field: When comparing the Sequence Number fields of two RTP packets, A and B, compute the difference between the Sequence Number field values of A and B, and treat the difference as a signed 16-bit integer. If the difference is a positive number, then A is later in the numerical order and would be inserted behind B. If the difference is a negative number, then B is earlier in the numerical order and would be inserted in front of A.
If the RTP packet is not inserted in RTP-Order-List, then it MUST be discarded.
The client MUST then process the RTP packets in RTP-Order-List, starting with the RTP packet at the head of the list. The following rules apply to each packet that is processed in RTP-Order-List:
Any ASF data packets that are fully contained within the RTP packet MUST be extracted from the RTP packet and delivered to the higher layer.
If an ASF data packet has been split up across multiple RTP packets and all the relevant RTP packets have been received, then the client MUST recombine the ASF data packet and deliver it to the higher layer. For information about how to determine if an RTP packet contains a complete ASF data packet or a fragmented ASF data packet, see section 2.2.1.3.
Once all ASF data packet data has been extracted from the RTP packet and delivered to the higher layer, the RTP packet MUST be removed from RTP-Order-List.
The client MUST compute the difference between the value of the Sequence Number field of the next RTP packet in RTP-Order-List and the value of the Sequence Number field of the current RTP packet. The difference MUST be treated as a 16-bit integer. The client MUST subtract 1 from the difference. The result, which is the difference minus one, is referred to as NumLost.
If the value of NumLost is greater than 0, then the client MUST report the value of NumLost to the higher layer. The NumLost value specifies the number of RTP packets directly following the current RTP packet that have been lost.
If the value of NumLost is greater than 0, then the client MUST report the value of NumLost to the higher layer. The NumLost value specifies the number of RTP packets directly following the current RTP packet that have been lost.
If the value of NumLost is greater than 0, then the client MUST report the value of the Sequence Number field of the current RTP packet to the higher layer. The higher layer can use this information together with NumLost to request retransmission of the lost RTP packets, as specified in section 3.1.4.6.
If the value of NumLost is greater than 0, then the higher layer MUST specify if the current RTP packet is removed. If the higher layer specifies that the current RTP packet is to be removed, then the client MUST remove the current RTP packet from RTP-Order-List and continue processing any remaining packets in RTP-Order-List.
If the value of NumLost is greater than 0 and the higher layer specifies that the current RTP packet is not to be removed, then the client MUST NOT remove the current RTP packet from RTP-Order-List and MUST stop processing any remaining packets in RTP-Order-List. The client will process RTP-Order-List again the next time an RTP packet that contains ASF data is received.