3.2.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described 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.

Announce-Sent: This variable is a flag with possible values 0 and 1. A value of 1 means that the server has sent an Announce request but has not yet received the Announce response. A value of 0 means that an Announce response is not expected. The default value is 0.

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

FEC-Parameter-State: This variable stores the fec-parameters token for each stream that uses FEC. The fec-parameters token is defined in section 2.1. The initial value of this variable is empty.

FEC-Span-Counters: This is a collection of numerical counters. There is one counter for each stream in the content. The counter counts the number of RTP packets that have been transmitted in an FEC span. The value of a counter is in the range 0x00 to 0x17, inclusive. The initial value of all counters is 0x00.

Listening-endpoint: This variable stores the listening TCP endpoint established by the server as specified in [RFC2326] section 3.2. The default value for the port is 554.

New-ASF-File-Header: This variable stores the ASF header received from the higher layer. The ASF header is for the current playlist entry. The default value is NULL.

Pending-ASF-File-Header: This variable stores an ASF header received from the higher layer that has not yet been sent to the client. The ASF header is for the next playlist entry. The default value is NULL.

Pause-Allowed-In-READY: This variable is a flag with possible values 0 and 1. If the value is 1, it means that the server will accept a Pause request when the value of the State variable is READY. If the value is 0, it means that the server will not accept a Pause request when the value of the State variable is READY. The initial value is 0.

Play-Expected-Before-Announce: This variable is a flag with possible values 0 and 1. If the value is 1, it means that the server expects to receive a Play request before it will send an Announce request. If the value is 0, it means that receiving a Play request is not a requirement for sending an Announce request. The initial value is 1.

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.

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

Profile_ByteRate: An array of five unsigned integer numbers. Each number specifies the average bit rate, in bytes per second, of the encoded content, computed over the time interval given by the value of Profile_LastPresTime minus the value of Profile_FirstPresTime. The minimum value of each number is 0. The maximum value of each number is 4,294,967,295. The initial values of all numbers are 0.

Profile_BytesNeeded: An unsigned integer number that specifies the cumulative size of all ASF media objects in the interval given by the value of Profile_LastPresTime minus the value of Profile_FirstPresTime. The minimum value is 0. The maximum value is 4,294,967,295. The initial value is 0.

Profile_ChosenRate: An unsigned integer number that specifies the average bit rate, in bytes per second, of a set of ASF payloads or a set of streams. The minimum value is 0. The maximum value is 4,294,967,295. The initial value is 0.

Profile_FirstPresTime: An unsigned integer number that specifies the ASF presentation time value ([ASF] section 5.2.3) of the first ASF payload in an interval. The minimum value is 0. The maximum value is 18,446,744,073,709,551,615. The initial value is 18,446,744,073,709,551,615.

Profile_FirstSendTime: An unsigned integer number that specifies the ASF send time value ([ASF] section 5.2.2) of the first ASF packet in an interval. The minimum value is 0. The maximum value is 18,446,744,073,709,551,615. The initial value is 0.

Profile_LastPresTime: An unsigned integer number that specifies the ASF presentation time value ([ASF] section 5.2.3) of the last ASF payload in an interval. The minimum value is 0. The maximum value is 18,446,744,073,709,551,615. The initial value is 0.

Profile_LastSendTime: An unsigned integer number that specifies the ASF send time value ([ASF] section 5.2.2) of the last ASF packet in an interval. The minimum value is 0. The maximum value is 18,446,744,073,709,551,615. The initial value is 18,446,744,073,709,551,615.

Profile_MaxBytes: An array of five unsigned integer numbers. Each number specifies the number of bytes by which a buffer underflows. The minimum value of each number is 0. The maximum value of each number is 2,147,483,647. The initial values of all numbers are 0.

Profile_MaxDiffSndTime: A signed integer number that specifies the maximum latency, in milliseconds, between the video and the audio streams during the time interval given by the value of Profile_LastPresTime minus the value of Profile_FirstPresTime. The minimum value is -2,147,483,646. The maximum value is 2,147,483,647. The initial value is 0.

Profile_PlaybackRate: An unsigned integer number that specifies the sum of the average bit rates, in bytes per second, of each stream listed in the Selected-Streams variable. The minimum value is 0. The maximum value is 2,147,483,647. The initial value is 0.

Profile_Time: An array of five unsigned integer numbers. Each number specifies the time when a maximum buffer underflow will occur, in millisecond time units. The minimum value of each number is 0. The maximum value of each number is 18,446,744,073,709,551,615. The initial values of all numbers are 0.

Profile_TimeForMaxDiffSndTime: An unsigned integer number that specifies the ASF presentation time value ([ASF] section 5.2.3) of an ASF payload that has the maximum latency specified by the Profile_MaxDiffSndTime variable. The minimum value is 0. The maximum value is 18,446,744,073,709,551,615. The initial value is 0.

Proxy-Role: The possible values are 0 and 1. A value of 1 means the server is acting as a proxy server for the current request. A value of 0 means the server is not acting as a proxy server for the current request. The default value is 0.

Selected-New-Streams: This variable stores the list of streams that are listed in the Selected-Streams variable for which no RTP packets have been transmitted after they were added to the Selected-Streams variable. By default, the Selected-New-Streams variable contains an empty list.

Selected-Replacement-Streams: This variable stores the list of entries where each entry is a pair of streams. One of the streams is referred to as the old stream and the other as the new stream. The server intends to replace the old stream with the new stream. By default, the variable contains no entries.

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

Selected-Streams: This variable stores the list of streams specified by the client in the SelectStream (section 2.2.7.10).

Specified-Bandwidth: This variable stores the value specified by the Bandwidth header (section 2.2.6.1). The value MUST be in bits per second, and the default value is 0.

Specified-Lag-Time: This variable stores whether the client specified the X-Player-Lag-Time in the header of the Play request. The default value is 0.

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

TransactionsPerHeartBeat: This variable counts how many RTSP "transactions" have occurred since the Heartbeat timer last expired. A "transaction" is one or more RTSP requests, as shown by the usage of this variable in section 3.2.5.1. The default value is 0, the minimum value is 0, and the maximum value is 4,294,967,295.

TransactionsSETUP: This variable counts how many RTSP SETUP requests have been received since the last time an RTSP request other than SETUP, TEARDOWN, SET_PARAMETER, or GET_PARAMETER was received. The default value is 0, the minimum value is 0, and the maximum value is 4,294,967,295.

TransactionsTEARDOWN: This variable counts how many RTSP SETUP requests have been received since the last time an RTSP request other than SETUP, TEARDOWN, SET_PARAMETER, or GET_PARAMETER was received. The default value is 0, the minimum value is 0, and the maximum value is 4,294,967,295.

Use-UDP: This variable is a flag with possible values 0 and 1. If the value is 1, it means that the server is sending RTP packets for streams other than the retransmission stream over UDP. If the value is 0, it means that the server is sending RTP packets for streams other than the retransmission stream over TCP. The default value is 0.

v-port: The value of this variable defines the RTP UDP port number in the client_port parameter of the Transport header in the SelectStream request provided by the client for the retransmission stream. The initial value is 0.

v-ssrc: The value of this variable is an identifier assigned by the server to the numerical value of the ssrc field that the server provided in the Transport header in its response (see section 2.2.6.11). The initial value is 0.