2.2.3.10 Wave2 PDU (SNDWAVE2)

The Wave2 PDU is used to transmit audio data over virtual channels.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Header

wTimeStamp

wFormatNo

cBlockNo

bPad

dwAudioTimeStamp

Data (variable)

...

Header (4 bytes): An RDPSND PDU Header (section 2.2.1). The msgType field of the RDPSND PDU Header MUST be set to SNDC_WAVE2 (0x0D). The BodySize field of the RDPSND PDU Header is the size of this PDU minus the size of the header.

wTimeStamp (2 bytes): A 16-bit unsigned integer representing the time stamp of the audio data. It SHOULD<10> be set to a time that represents when this PDU is built.

wFormatNo (2 bytes): A 16-bit unsigned integer that represents an index into the list of audio formats exchanged between the client and server during the initialization phase, as described in section 3.1.1.2. The format located at that index is the format of the audio data in this PDU and the Wave PDU that immediately follows this packet.

cBlockNo (1 byte): An 8-bit unsigned integer specifying the block ID of the audio data. When the client notifies the server that it has consumed the audio data, it sends a Wave Confirm PDU (section 2.2.3.8) containing this field in its cConfirmedBlockNo field.

bPad (3 bytes): A 24-bit unsigned integer. This field is unused. The value is arbitrary and MUST be ignored on receipt.

dwAudioTimeStamp (4 bytes): A 32-bit unsigned integer representing the timestamp when the server gets audio data from the audio source. The timestamp is the number of milliseconds that have elapsed since the system was started. This timestamp SHOULD be used to sync the audio stream with a video stream remoted using the Remote Desktop Protocol: Video Optimized Remoting Virtual Channel Extension (see the hnsTimestampOffset and hnsTimestamp fields as specified in [MS-RDPEVOR] sections 2.2.1.2 and 2.2.1.6, respectively).

Data (variable): Audio data. The format of the audio data MUST be the format specified in the list of formats exchanged during the initialization sequence and found at the index specified in the wFormatNo field.