[flac-dev] Define 6.1 and 7.1 channel mappings

Ralph Giles giles at thaumas.net
Wed Jan 2 18:43:14 PST 2013

On 13-01-02 3:16 PM, Stephen F. Booth wrote:

> I think we may be butting up against an area where the standards aren't clear.

That's the conclusion I came to. Earlier today I looked through
http://read.pudn.com/downloads122/ebook/519453/EIA-CEA-861-B.pdf, which
defines speaker configurations for HDMI, among other things. It uses
rear left, rear left centre, rear centre, rear right centre, rear right
instead of 'side' or 'surround' labels. So we now have three different
sets of terminology just for the planar configurations!

> I think my preference for the Apple/Core Audio layouts is known but
> obviously any standard would be better than none.  Do I understand
> correctly that WAVE_FORMAT_EXTENSIBLE simply defines a standard channel
> order and FLAC would specify compatible channel
> masks?

That's what WAVE_FORMAT_EXTENSIBLE defines in the context of the WAVE
file format and playback APIs on MS Windows. What Tim and I are
proposing is a little simpler.

I think that we should define 7 and 8 channel flac files to use a planar
speaker configuration, with the additional channels in
side/rear/surround positions (rather than the front) and that order of
the channels to be as in Tim's option #1 and my original patch.

This matches what Vorbis does, and as Tim says, is compatible with WAVE
and would bless what tools based on libavcodec are doing today. Doing so
provides enough information for players to mix the decoder output for
any actual speaker arrangement.

There aren't enough bits in the flac frame header to directly
accommodate all of the speaker arrangements mentioned in the various
standards, so for the purposes of that field we have to pick a
particular set, just as was done with 5.1 audio. The flac specification
says the channel mapping follows ITU standards "where defined" so I
think we're ok choosing which of the available configurations to support
for 6.1 and 7.1.

If it is important to support other configurations, we could _in
addition_ define an extension mechanism, e.g. with the
WAVEFORMATEXTENSIBLE_CHANNEL_MASK in a vorbis comment or custom metadata
block and have that override the default setting from the frame header.
I don't think that's necessary for the use case we were addressing here,
which is mastering 6.1 or 7.1 audio tracks for

Remember also that flac streams are limited to no more than 8 channels,
while much of the current experimentation with surround configuration
uses rather more than that. I'm skeptical that going through all
software and adding support for a handful of 7.1 layouts is useful in
the long run.


More information about the flac-dev mailing list