3.1.4.2 Request to Start Streaming Content

This higher-layer triggered event can occur when the client is not currently streaming from the server. The event causes the client to send a LinkViewerToMacStartPlaying (section 2.2.4.25) message or a LinkViewerToMacStartStriding (section 2.2.4.26) message to the server. An application asks the client to request the server to start streaming content most often under the following common scenarios:

  • A media player application that has examined the ASF file header received from the server (see section 3.1.5.12) and determined that it can decompress and play the multimedia content.

  • A cache that has determined that the currently cached copy of the content, if any, is either stale or incomplete.

  • A server or intermediate device, such as a noncaching proxy, that asks for content to be streamed on behalf of another client.

The State variable in the abstract data model MUST have the value READY for this higher-layer triggered event to be possible. If the value of the State variable is not READY when this event occurs, the client MUST treat this as an error.

Since the ASF file header typically lists multiple streams (2), the higher layer SHOULD specify which of the streams is streamed from the server. The list of selected streams SHOULD be sent to the server using a LinkViewerToMacStreamSwitch (section 2.2.4.28) message.<28>

If the client chooses to send a LinkViewerToMacStreamSwitch (section 2.2.4.28) message, it MUST fill in the fields of the message.

The aStreamEntries field of the LinkViewerToMacStreamSwitch (section 2.2.4.28) message MUST specify the complete selection state of all streams. That is, the aStreamEntries field MUST specify all available streams, and each stream MUST either be marked as on (by specifying the wThinningLevel field as 0x0000) or marked as off (by specifying the wDstStreamNumber field as 0xFFFF), depending on the selection made by the higher layer.

When sending the LinkViewerToMacStreamSwitch (section 2.2.4.28) message, it MUST be sent by the rules specified in section 3.1.5.1.

The client MUST set the value of the Stream-Switch-Sent variable to 1.

Next, if the value of the Trick-Mode-Rate variable is 0, the client MUST send a LinkViewerToMacStartPlaying (section 2.2.4.25) message (as specified in section 3.1.4.2.1) to the server. If the value of the Trick-Mode-Rate variable is 1, the client MUST send a LinkViewerToMacStartStriding (section 2.2.4.26) message (as specified in section 3.1.4.2.2). <29>