﻿id	summary	reporter	owner	description	type	status	priority	component	version	resolution	keywords	cc	blockedby	blocking	reproduced	analyzed
10321	mov_channel_layout[] table possible issues	Tim		"Note: this is kind of a ""thinking out loud"" thing, possibly worth discussing anyway.

Example:
https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/a3f4916:/libavformat/isom.c#l400
{{{
    { AV_CH_LAYOUT_7POINT1, (128<<16) | 8}, // kCAFChannelLayoutTag_MPEG_7_1_C
}}}
https://developer.apple.com/library/archive/documentation/MusicAudio/Reference/CAFSpec/CAF_spec/CAF_spec.html
{{{
    kCAFChannelLayoutTag_MPEG_7_1_C = (128<<16) | 8,         // L R C LFE Ls Rs Rls Rrs
}}}
Thus:
{{{
L | R | C | LFE | BL | BR | SL  | SR     AV_CH_LAYOUT_7POINT1
L | R | C | LFE | Ls | Rs | Rls | Rrs    kCAFChannelLayoutTag_MPEG_7_1_C
}}}
BL == Ls (kCAFChannelLabel_LeftSurround)
BR == Rs (kCAFChannelLabel_RightSurround)
but SL (kCAFChannelLabel_LeftSurroundDirect) != Rls (kCAFChannelLabel_RearSurroundLeft)
and SR (kCAFChannelLabel_RightSurroundDirect) != Rls (kCAFChannelLabel_RearSurroundRight)

…also, perhaps importantly, as far as I can understand, SL and SR are supposedly closer to
the front channels than BL/Ls and BR/Rs whereas Rls Rrs are behind BL/Ls and BL/Rs, making
the mapping rather problematic?

On the other hand:
{{{
L | R | C | LFE | BL | BR | FLC | FRC    AV_CH_LAYOUT_7POINT1_WIDE_BACK
L | R | C | LFE | Ls | Rs | Lc  | Rc     kCAFChannelLayoutTag_MPEG_7_1_A
}}}
but there is no mapping for it in the mov_channel_layout table.

{{{
L | R | C | LFE | SL | SR | FLC | FRC    AV_CH_LAYOUT_7POINT1_WIDE
L | R | C | LFE | Ls | Rs | Lc  | Rc     kCAFChannelLayoutTag_MPEG_7_1_A
}}}
exists with SL == Ls and SR == Rs, which is also used by AV_CH_LAYOUT_5POINT1 ==
kCAFChannelLayoutTag_MPEG_5_1_A and several other mappings, but is somewhat less
problematic since there are no back channels in the corresponding AV_CH_LAYOUTs.

Also:
{{{
L | R | C | LFE | BL | BR | BC    AV_CH_LAYOUT_6POINT1_BACK
L | R | C | LFE | Ls | Rs | Cs    kCAFChannelLayoutTag_MPEG_6_1_A
}}}
seems suitable but is absent from the table.

This would not work, on the other hand:
{{{
L | R | C | LFE | BC | SL | SR    AV_CH_LAYOUT_6POINT1
L | R | C | LFE | Ls | Rs | Cs    kCAFChannelLayoutTag_MPEG_6_1_A
}}}
(but does not exist in the table, just noteworthy)

Finally/FWIW https://developer.apple.com/documentation/coreaudiotypes/1572101-audio_channel_layout_tags?language=objc

Does list some additional WAVE-specific layout tags which are not
present in the CAF Channel Layout Chunk specification, for example:

kAudioChannelLayoutTag_WAVE_7_1 = (189U<<16) | 8
"	enhancement	new	normal	avformat	git-master						0	0
