3.2.4.1 Notification that the Last RTP Packet Has Been Sent

When the higher layer notifies the server that the last RTP packet has been sent, the server MUST send an EndOfStream (section 2.2.7.3) request to the client.

If the value of the Playlist-gen-id variable in the abstract data model does not equal 0, then the EndOfStream request MUST include the X-Playlist-Gen-Id header (section 2.2.6.22).

If the Selected-Streams variable in the abstract data model contains one or more audio or video streams, then the EndOfStream request MUST include the RTP-Info header, as specified in [RFC2326] section 12.33. The seq parameter MUST be specified for each stream-url on the RTP-Info header. The rtptime parameter SHOULD NOT be specified for any stream-url on the RTP-Info header.

The RTP-Info header in the EndOfStream request MUST NOT include a stream-url section for streams used for retransmitted RTP packets and packet-pair data.

The higher layer MUST specify if a new ASF header is forthcoming (that is, there are additional entries in the server-side playlist) or if this was the last entry in the playlist, so that the message body in the request can be filled in correctly.

If the value of the Playlist-gen-id variable in the abstract data model does not equal 0, and the higher layer specifies that a new ASF header is forthcoming, then the syntax element "End-Of-Playlist-Entry: true" MUST be included in the EndOfStream request. Otherwise, the syntax element "End-Of-Playlist-Entry: true" MUST NOT be included in the EndOfStream request.

If the higher layer indicates that the start of the content (or playlist entry) has been reached (this could happen if the server is streaming the content for playback in the reverse direction), the syntax element "RecedingEos: true" MUST be included in the EndOfStream request. Otherwise, the syntax element "RecedingEos: true" MUST NOT be included in the EndOfStream request.

If the higher layer indicates that a system administrator decided that the server stop streaming to the client, then the "AdministrativeDisconnection: true" syntax element MUST be included in the EndOfStream request. Otherwise, the syntax element "AdministrativeDisconnection: true" MUST NOT be included in the EndOfStream request.

The value of the State variable in the abstract data model MUST be changed to READY.

If the server includes the syntax element "End-Of-Playlist-Entry: true" in the EndOfStream request, then the server MUST set the value of the Pause-Allowed-In-READY variable to 1.

The Idle-Timeout timer MUST be started.

After sending the EndOfStream request, the server MUST wait for the response to be received. How to process the response is specified in section 3.2.5.13. While waiting for the response, the server MUST also be prepared to receive RTCP packets. How to handle RTCP packets is specified in section 3.2.5.10.