GUACAMOLE-2306: Add support for the RDPSND Wave2 (SNDC_WAVE2) PDU. - #696
Open
mkhawam wants to merge 1 commit into
Open
GUACAMOLE-2306: Add support for the RDPSND Wave2 (SNDC_WAVE2) PDU.#696mkhawam wants to merge 1 commit into
mkhawam wants to merge 1 commit into
Conversation
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>
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.