Skip to content

GUACAMOLE-2306: Add support for the RDPSND Wave2 (SNDC_WAVE2) PDU. - #696

Open
mkhawam wants to merge 1 commit into
apache:mainfrom
mkhawam:rdpsnd-wave2-support
Open

GUACAMOLE-2306: Add support for the RDPSND Wave2 (SNDC_WAVE2) PDU.#696
mkhawam wants to merge 1 commit into
apache:mainfrom
mkhawam:rdpsnd-wave2-support

Conversation

@mkhawam

@mkhawam mkhawam commented Jul 22, 2026

Copy link
Copy Markdown

Modern Windows RDP servers may transmit audio using the single-PDU Wave2 (SNDC_WAVE2) form rather than the legacy WaveInfo/Wave pair. Per MS-RDPEA, a server uses Wave2 only when both the client and server advertise RDPSND protocol version 8 or higher. Guacamole previously advertised version 6 and had no SNDC_WAVE2 handler, so Wave2 could not be negotiated, and any Wave2 PDU that did arrive was silently dropped (no audio decoded and no Wave Confirmation returned, which stalls the server's audio stream).

This advertises client version 8 and adds a handler that decodes the self-contained Wave2 audio block, plays it, and acknowledges it via a Wave Confirmation PDU. The legacy WaveInfo/Wave path is retained for servers negotiating a lower version.

Modern Windows RDP servers may transmit audio using the single-PDU Wave2 (SNDC_WAVE2) form rather than the legacy WaveInfo/Wave pair. Per MS-RDPEA, a server uses Wave2 only when both the client and server advertise RDPSND protocol version 8 or higher. Guacamole previously advertised version 6 and had no SNDC_WAVE2 handler, so Wave2 could not be negotiated, and any Wave2 PDU that did arrive was silently dropped (no audio decoded and no Wave Confirmation returned, which stalls the server's audio stream).

This advertises client version 8 and adds a handler that decodes the self-contained Wave2 audio block, plays it, and acknowledges it via a Wave Confirmation PDU. The legacy WaveInfo/Wave path is retained for servers negotiating a lower version.

Co-authored-by: Charles Hedrick <hedrick@rutgers.edu>
@clhedrick

clhedrick commented Jul 23, 2026

Copy link
Copy Markdown

It's not obvous from this description, but this patch is needed to make audio work with Gnome Remote Desktop, least with Guacamole on our Redhat 10.2 system. Without the patch there is no sound.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants