Skip to content

fix(egfx): honor the server's AVC_DISABLED during negotiation - #1731

Draft
Hojjat Abdollahi (hojjatabdollahi) wants to merge 1 commit into
Devolutions:masterfrom
hojjatabdollahi:fix/egfx-avc-disabled
Draft

fix(egfx): honor the server's AVC_DISABLED during negotiation#1731
Hojjat Abdollahi (hojjatabdollahi) wants to merge 1 commit into
Devolutions:masterfrom
hojjatabdollahi:fix/egfx-avc-disabled

Conversation

@hojjatabdollahi

Copy link
Copy Markdown

AVC_DISABLED is an inverted-sense flag: a peer sets it to say it cannot handle AVC/H.264. #1490 stopped AND-ing away the client's copy, but the server's copy is still dropped whenever the client leaves it clear.

That misreports servers which cannot produce AVC at all, such as one streaming only RemoteFX Progressive: it sets AVC_DISABLED, negotiation clears it, and the capabilities confirmation promises the client a codec that will never arrive.

OR the flag from both sides instead, so it survives when either peer disables it, and cover the server case in the negotiation tests.

For positive flags they are still AND-ed but for AVC_DISABLED, which is negative it is OR-ed so if either side sets it, it's enough.

`AVC_DISABLED` is an inverted-sense flag: a peer sets it to say it
cannot handle AVC/H.264. Devolutions#1490 stopped AND-ing away the *client's* copy,
but the server's copy is still dropped whenever the client leaves it
clear.

That misreports servers which cannot produce AVC at all, such as one
streaming only RemoteFX Progressive: it sets AVC_DISABLED, negotiation
clears it, and the capabilities confirmation promises the client a codec
that will never arrive.

OR the flag from both sides instead, so it survives when either peer
disables it, and cover the server case in the negotiation tests.
@github-actions github-actions Bot added kind/protocol Affects RDP or related protocol behavior maintainer-required Maintainer review or intervention is required risk/low Self-contained change with no cross-crate behavioral effect scope/core Touches the core architectural tier size/XS Size: up to 49 counted lines and 2 files labels Aug 20, 2026
@hojjatabdollahi
Hojjat Abdollahi (hojjatabdollahi) marked this pull request as draft August 21, 2026 00:37
@hojjatabdollahi

Copy link
Copy Markdown
Author

Draft, until I make sure my assumption was correct.

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

Labels

kind/protocol Affects RDP or related protocol behavior maintainer-required Maintainer review or intervention is required risk/low Self-contained change with no cross-crate behavioral effect scope/core Touches the core architectural tier size/XS Size: up to 49 counted lines and 2 files

Development

Successfully merging this pull request may close these issues.

1 participant