2.2.1 RDPSND PDU Header (SNDPROLOG)

The RDPSND PDU header is present in many audio PDUs. It is used to identify the PDU type, specify the length of the PDU, and convey message flags.


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

msgType

bPad

BodySize

msgType (1 byte): An 8-bit unsigned integer that specifies the type of audio PDU that follows the BodySize field.

Value

Meaning

SNDC_CLOSE

0x01

Close PDU

SNDC_WAVE

0x02

WaveInfo PDU

SNDC_SETVOLUME

0x03

Volume PDU

SNDC_SETPITCH

0x04

Pitch PDU

SNDC_WAVECONFIRM

0x05

Wave Confirm PDU

SNDC_TRAINING

0x06

Training PDU or Training Confirm PDU

SNDC_FORMATS

0x07

Server Audio Formats and Version PDU or Client Audio Formats and Version PDU

SNDC_CRYPTKEY

0x08

Crypt Key PDU

SNDC_WAVEENCRYPT

0x09

Wave Encrypt PDU

SNDC_UDPWAVE

0x0A

UDP Wave PDU

SNDC_UDPWAVELAST

0x0B

UDP Wave Last PDU

SNDC_QUALITYMODE

0x0C

Quality Mode PDU

SNDC_WAVE2

0x0D

Wave2 PDU

bPad (1 byte): An 8-bit unsigned integer. Unused. The value in this field is arbitrary and MUST be ignored on receipt.

BodySize (2 bytes): A 16-bit unsigned integer. If msgType is not set to 0x02 (SNDC_WAVE), then this field specifies the size, in bytes, of the data that follows the RDPSND PDU header. If msgType is set to 0x02 (SNDC_WAVE), then the representation of BodySize is explained in the Header field in section 2.2.3.3.