2.2.10 MSB_MSG_IND_PACKET
The server transmits the media stream by using MSB_MSG_IND_PACKET packets. Each ASF data packet in the media stream MUST be encapsulated in a separate MSB_MSG_IND_PACKET packet. The server MUST NOT combine multiple ASF packets in a single MSB_MSG_IND_PACKET and MUST NOT fragment an ASF packet across multiple MSB_MSG_IND_PACKET packets.
The MSB_MSG_IND_PACKET packets MUST be transmitted over the MSBD TCP connection (that is, the same TCP connection on which the server transmitted the MSB_MSG_RES_CONNECT packet, except when the server has agreed to use IP multicasting to deliver the MSB_MSG_IND_PACKET packets). When IP multicasting is used, the server MUST transmit the MSB_MSG_IND_PACKET packets to the IP multicast address/UDP port number combination indicated in the MSB_MSG_RES_CONNECT packet.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Header (16 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
dwPacketId |
|||||||||||||||||||||||||||||||
wStreamId |
wPacketSize |
||||||||||||||||||||||||||||||
bPayload (variable) |
|||||||||||||||||||||||||||||||
... |
Header (16 bytes): An MSBMSGBASE packet that defines the packet header. The wMessageId field MUST be set to 0x000A.
dwPacketId (4 bytes): An unsigned 32-bit integer that identifies the MSB_MSG_IND_PACKET packet. This value SHOULD start with 0 for the first MSB_MSG_IND_PACKET packet that is transmitted; alternatively, the starting value MAY be chosen randomly. The value of the dwPacketId field MUST be incremented for each new MSB_MSG_IND_PACKET packet that is transmitted. The value of the dwPacketId field MUST fall within the range 0x00000000 to 0xFFFFFFFF, inclusive.
wStreamId (2 bytes): An unsigned 16-bit integer that identifies the content. This value MUST be the same as the wStreamId field in the MSB_MSG_IND_STREAMINFO packet. The value of the wStreamId field MUST be in the range 0x0000 to 0x07FF, inclusive, or in the range 0x8000 to 0x87FF, inclusive.
wPacketSize (2 bytes): An unsigned 16-bit integer that contains the size, in bytes, of the bPayload field plus the size of the wStreamId, dwPacketId, and wPacketSize fields. The wPacketSize field MUST be set to a value in the range 0x0008 to 0xFFEF, inclusive.
bPayload (variable): One ASF packet. If the ASF packet contains a nonzero Padding Data field, this field MUST be included in bPayload. Details on the Padding Data field are as specified in [ASF] section 5.2.4. Error correction, as specified in [MS-MSB] section 2.2.2, MAY be used, in which case some of the ASF packets are parity packets, as specified in [MS-MSB] section 2.2.2. If the bPayload field contains a parity packet, the dwPacketId field MUST be identical to that of the previously transmitted MSB_MSG_IND_PACKET.