Skip to content

4 bytes unused in CNetworkTransportProps #3896

Description

@dingodoppelt

CNetworkTransportProps contains 4 bytes reserved for iAudioCodingArg which is never used, still sent over the wire. This was surfaced by #3894
We should use it to unambiguously negotiate the audio coding format and replace the heuristic method for recognising raw audio being employed at the moment.
The question is what to do with the remaining bits. Any ideas?

Activity

  1. dingodoppelt commented on Aug 13, 2026

    @dingodoppelt
    MemberAuthor

    This is a first test and seems to be working while maintaining backwards compatibility.

  2. self-assigned this
    on Aug 13, 2026
  3. mcfnord commented on Aug 13, 2026

    @mcfnord
    Contributor

    🤖 AI: Which of those four enums the wire is actually missing is worth pinning first. EAudComprType and ENetwFlags already have dedicated validated fields in the same message, and the channel config is partly there — CC_MONO_IN_STEREO_OUT and CC_STEREO both send two channels. Only EAudioQuality has no representation at all.

    So consolidating mostly re-sends what is already on the wire, and a restated field is a second source of truth. The two disagreeing is what the #3898 overflow turned out to be.

    The other constraint is zero. All four enums use 0 as a valid value, and every current client sends a literal 0 in this field, so a bare packing cannot separate a legacy client from mono / CT_NONE / no counter / AQ_LOW. Reserving 0 for "nothing declared" keeps that decidable. All four fit in seven bits; the rest can stay reserved and validated as zero until something needs them.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions