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.
-