3.1.5.12 Receiving RTP Packets

The client MUST verify that the RTP packet is compliant with the RTP payload format syntax. The RTP payload format for ASF data packets is specified in section 2.2.1. The RTP payload format for FEC packets is specified in section 2.2.2. The RTP payload format for retransmitted RTP packets is specified in section 2.2.3.1.

Details on how to determine what RTP payload format is used for a packet are specified in [RFC3550], section 5.1. In summary, it involves determining the RTP session by examining the UDP destination port number (if UDP is used) and the SSRC field in the RTP header. It then involves checking the value of the Payload Type field in the RTP header and cross-referencing this with the RTP payload format for that value, as specified in SDP [RFC4566].

If the value of the RTP-Queue-Limit variable in the Abstract Data Model is greater than zero, then the client MUST follow the rules in section 3.1.5.12.1 and then continue processing the remainder of the rules in the current section.

If the RTP packet contains FEC data and the value of the RTP-Queue-Limit variable is zero, then the client MUST discard the RTP packet and then continue processing the remainder of the rules in the current section.

If the RTP packet uses the RTP payload format for ASF data packets or if the RTP packet uses the RTP payload format for retransmitted RTP packets, then the client MUST follow the rules in section 3.1.5.12.2 and then continue processing the remainder of the rules in the current section.

If the client has sent any requests for which it has not yet received a response, it MUST be prepared to receive the response. The client MUST also be prepared to receive more RTP packets and to follow the rules specified in this section for each received RTP packet.

The client MUST also be prepared for a higher-layer triggered event to occur and to receive an EndOfStream request. How to process an EndOfStream request is specified in section 3.1.5.13.