3.4.5.3 Receiving a RTSP DESCRIBE Request
The DMS MUST process the DESCRIBE request according to the rules in [DLNA] guideline 7.4.210.
If the DESCRIBE request includes the User-Agent header (section 2.2.3.5), it MUST be ignored.
If the DESCRIBE request includes the X-Accept-Authentication header (section 2.2.3.6), it MUST be ignored.
If the DESCRIBE request includes a Supported header that complies with the syntax in [DLNA], guideline 7.4.223, then it MUST be parsed as specified in [DLNA] guidelines 7.4.239 and 7.4.261.1.
Note that the Supported header defined in section 2.2.3.3.1 complies with the syntax defined in [DLNA] guideline 7.4.223, but contains additional feature-tag tokens not defined by the DLNA Guidelines. These additional feature-tag tokens MUST be ignored.
The DMS MUST include headers in the RTSP response, as specified in section 3.4.5.3.1.
The response SHOULD include the Cache-Control header, as specified in section 2.2.3.1. If the size of the content file is known to the DMS, then the value of the content-size parameter on the Cache-Control header SHOULD be set to the file size, in bytes. Otherwise, the value of the content-size parameter MUST be set to 0. The process used to determine the size of the content file is implementation-specific.
The message body of the DESCRIBE response MUST be an SDP message, as defined in [DLNA] guideline 7.4.89.
The SDP information for each stream in the content SHOULD have a Media Stream Identification attribute as specified in section 2.2.2.2.4.
Metadata information specific to the content SHOULD be included in the SDP using the a=pgmpu attribute, as specified in section 2.2.2.2.5. This metadata is provided by the higher layer. If the content has no metadata, then the a=pgmpu attribute SHOULD NOT be included.
If the content being requested by the client is obtained from an ASF file that contains an ASF Marker Object (defined in [ASF], section 3.7), then the information in the ASF Marker Object SHOULD be included in SDP using the a=marker attribute, as specified in section 2.2.2.2.3.
If the content being requested by the client is obtained from an ASF file that contains an Extended Content Description Object (defined in [ASF], section 3.11) and it provides a ASFLeakyBucketPairs property, then the information in the ASFLeakyBucketPairs property SHOULD be included in SDP using the a=bucketinfo attribute, as specified in section 2.2.2.2.1. The ASFLeakyBucketPairs property MUST be mapped to the a=bucketinfo attribute, as follows: The first two bytes in ASFLeakyBucketPairs MUST be ignored. Each subsequent 8-byte unit MUST be treated as a leaky bucket parameter set. The first 32 bits in each leaky bucket parameter set is a little-endian unsigned integer, specifying the value to be used for the bitrate token in the a=bucketinfo syntax. The second 32 bits in each leaky bucket parameter set is a little-endian unsigned integer, specifying the value to be used for the buffer-window token in the a=bucketinfo syntax.
If the DMS does not support the use of the RTSP Range header for seeking to nonzero positions in the content, then the DMS SHOULD include the a=type attribute in the SDP, as specified in section 2.2.2.2.6.
If the content being requested by the client is obtained from an ASF file, but the DLNA Media Formats for WMA or WMV are not applicable for one of the streams, then the SDP information for that stream SHOULD specify use of the Generic RTP Payload Format, as specified in section 2.2.2.3.
If the content being requested by the client is obtained from an ASF file, and any of the streams have an ASF Payload Extension System, then the ASF Payload Extension Systems SHOULD be described in the SDP, as specified in section 2.2.2.4. If the DMS describes ASF Payload Extension Systems in SDP, then the DMS MUST also store this information in the Extension-info variable. Specifically, the Extension-info variable MUST identify the stream that the ASF Payload Extension System applies to, and the ASF Payload Extension Systems MUST be listed in the same order as they are listed in the SDP.
If a stream (either the audio stream or video stream) has the concept of a peak bit rate which is higher than the average bit rate, then both the peak and average bit rates SHOULD be specified in SDP as follows: The peak bit rate MUST be specified using the b= attribute with the AS modifier, as specified in [DLNA] guideline 7.4.280.1, and the average bit rate MUST be specified using the b= attribute with the X-AV modifier, as specified in section 2.2.2.1.1.
If a stream (either the audio stream or video stream) has a notion of a peak bit rate, which is less than or equal to than the average bit rate, or if a stream only has a single bit rate, then the average bit rate (or single bit rate) SHOULD be specified in SDP using the b= attribute with the AS modifier, as specified in [DLNA] guideline 7.4.280.1.
If the DMS includes the b= attribute with the AS modifier at the SDP media level, as specified in [DLNA] guideline 7.4.280.1, then the DMS SHOULD include the a=bufsize attribute as specified in section 2.2.2.2.2. The buffer-window parameter of the a=bufsize parameter MUST be set to the minimum amount of data that is required to be buffered by clients if they are receiving the data at the bit rate given by the b= attribute with the AS modifier.
If the RTSP response status code is 200, then the DMS MUST set the value of the State variable to RTSP_Init.
If the value of the State variable is RTSP_Init, then the DMS MUST be prepared to receive any of the following requests: