Skip to content

Support more than 2 channels (surround) for Opus #5

Description

@tphakala

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.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions