The Opus writer and reader currently cap audio at mono/stereo. Opus carries surround via dOps ChannelMappingFamily > 0 with a channel mapping table (stream count, coupled count, and the per-channel mapping), which AppendDops/ParseDops do not yet emit or parse (family 0 only). Multichannel Opus needs the mapping-table bytes in dOps, relaxing the channels 1..2 guard in opusm4a (and maxOpusChannels), and channel-count plumbing through the bridge. It is also gated upstream on a go-opus multistream encode/decode API.
Niche for the current audio-clip use case; filed to track.
Scope
Originally filed for Opus and FLAC. The FLAC half shipped separately (FLAC up to 8 channels, #38), so this is now Opus-only.
AAC-LC surround (channel configurations 3-7, i.e. 3.0 through 7.1) is technically valid in the container as well, but it is blocked upstream on go-aac, which is AAC-LC mono/stereo only: it cannot encode or decode more than 2 channels, and the reader only trusts the ASC channel configuration for 1..2. If go-aac ever gains multichannel support, AAC surround belongs in its own issue rather than here, since the work is entirely upstream.
The Opus writer and reader currently cap audio at mono/stereo. Opus carries surround via
dOpsChannelMappingFamily> 0 with a channel mapping table (stream count, coupled count, and the per-channel mapping), whichAppendDops/ParseDopsdo not yet emit or parse (family 0 only). Multichannel Opus needs the mapping-table bytes indOps, relaxing thechannels 1..2guard inopusm4a(andmaxOpusChannels), and channel-count plumbing through the bridge. It is also gated upstream on a go-opus multistream encode/decode API.Niche for the current audio-clip use case; filed to track.
Scope
Originally filed for Opus and FLAC. The FLAC half shipped separately (FLAC up to 8 channels, #38), so this is now Opus-only.
AAC-LC surround (channel configurations 3-7, i.e. 3.0 through 7.1) is technically valid in the container as well, but it is blocked upstream on go-aac, which is AAC-LC mono/stereo only: it cannot encode or decode more than 2 channels, and the reader only trusts the ASC channel configuration for 1..2. If go-aac ever gains multichannel support, AAC surround belongs in its own issue rather than here, since the work is entirely upstream.