3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

Note Only those Abstract Data Model (ADM) elements that are necessary for the Real-Time Streaming Protocol (RTSP) Windows Media Extensions are listed here. Other ADMs can be required as a consequence of implementing the base protocols RTSP, SDP, RTP, and RTC. For example: Sequence Number as required for each packet as specified in [RFC3550] section 5.1.

$P-Arrival-Time: This is an unsigned 64-bit integer that stores the time at which a $P packet is received. Because this variable is used only for computing relative time differences, the absolute clock offset is of no consequence and can be chosen arbitrarily. The value of the variable is in units of one hundred nanoseconds. The default is the minimum value 0x0000000000000000. The maximum value is 0xFFFFFFFFFFFFFFFF.

InitialRequest: A flag that is set to 1 if the client has already connected to the server. The default value of this variable is 0.

Keepalive-timeout: This variable stores the frequency at which the client will send KeepAlive requests. The default value is 60 seconds.

Playlist-gen-id: The value of this variable is an identifier assigned by the server to identify the current playlist entry. The default value is 0.

RTCP-Destination-Port: This is an unsigned 16-bit integer that stores the UDP port number that the client sends RTCP packets to. The minimum value is 0. The maximum value is 65535. The default value is 0.

RTP-Order-List: This variable is a list of RTP packets. By default, the list does not contain any RTP packets.

RTP-Queue: This variable is a queue of RTP packets. By default, the queue does not contain any RTP packets.

RTP-Queue-Limit: The value of this variable is the number of RTP packets that are allowed to be stored in RTP-Queue. The variable can be set to a value between 0 and 48, inclusive. The default is 0.

Server-features: This variable stores the capabilities that the server specified on the most recently received Supported header. The default value of this variable is that the server does not support any of the capabilities as specified in section 2.2.6.10.

State: This variable stores the client's state. Possible values are INIT, READY, and PLAYING.

SSRC-id: This variable is a 32-bit integer that stores the value of the "ssrc" parameter on the Transport header of the SelectStream response for the retransmission stream. The default value is 0.

SelectStream-request-counter: This counter stores the number of SelectStream requests sent by the client. The default value is 0.

X-Playlist-Change-Notice-Variable: This variable is assigned by the client to identify if the server has specified that the X-Playlist-Change-Notice header was set to "true". Possible values are "true" or "false". The default value is "false".