3.1.8.3 Decompressing Data

An endpoint which receives compressed data MUST decompress the data and store the resultant data at the end of the history buffer. The order of actions depends on the compression flags associated with the compressed data.

Compression flag

Meaning

PACKET_FLUSHED

0x80

If this flag is set, the decompressor MUST reinitialize the history buffer (by filling it with zeros) and reset the HistoryOffset to zero. Once the history buffer has been reinitialized, its entire contents are immediately regarded as valid.

If the PACKET_COMPRESSED (0x20) flag is also present, then the PACKET_FLUSHED flag MUST be processed first.

PACKET_AT_FRONT

0x40

If this flag is set, the decompressor MUST start decompressing to the start of the history buffer, by resetting the HistoryOffset to zero. Otherwise, the decompressor MUST append the decompressed data to the end of the history buffer.

PACKET_COMPRESSED

0x20

If this flag is set, the decompressor MUST decompress the data, appending the decompressed data to the history buffer and advancing the HistoryOffset by the size of the resulting decompressed data.