2.2.3.4 $E (End-of-Stream Notification)

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

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

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

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

 Value

 Meaning

S_OK

0x00000000

The client has finished streaming, and no more $D packets will be transmitted until the next PushStart request.

S_FALSE

0x00000001

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

Any other HRESULT code has the meaning defined in [MS-ERREF] section 2.1, except if it is a vendor-assigned HRESULT code, which is indicated by the C bit being set to 1 in the HRESULT code. The use of any HRESULT code other than S_FALSE implies that the client has finished streaming and no more $D packets will be transmitted until the next PushStart request.

Unlike other packet types, the $E packet does not have a Payload field.