2.2.3.4 $E (End-of-Stream Notification) Packet

The $E (End-of-Stream Notification) packet is used by the server to specify that the last $D (Data) packet (section 2.2.3.3) for the content has been transmitted. The $E packet also specifies if this was the last content in a server-side playlist or if the client expects to receive a $C (Stream Change Notification) packet (section 2.2.3.2).

The $E packet is defined as a Framing header (section 2.2.3.1.1), with the following additional details:

B (1 bit): As specified in section 2.2.3.1.1.

Frame (7 bits): As specified in section 2.2.3.1.1.

PacketID (1 byte): This field MUST be set to the "E" (0x45) character.

PacketLength (2 bytes): This field MUST be set to 4.

Reason: This field MUST be present. The HRESULT code specifies the error, if any, that caused the server to send the $E packet. HRESULT codes that have special meaning in the context of a $E packet are defined in the following table.

Value

Meaning

S_OK (0x00000000)

The server has finished streaming and no more $D packets (section 2.2.3.3) will be transmitted until the next Play request (section 2.2.2.6).

S_FALSE (0x00000001)

The server has finished streaming the current playlist entry. Other playlist entries still remain to be streamed. The server will transmit a $C packet when it switches to the next entry.

NS_S_EOS_RECEDING (0x000D2F09)

The server was rewinding the content (streaming the content backward) and has reached the beginning of the current playlist entry. No more $D packets will be transmitted until the next Play request.