Testing av_channel_layout_standard
mono           FC
stereo         FL+FR
2.1            FL+FR+LFE
3.0            FL+FR+FC
3.0(back)      FL+FR+BC
4.0            FL+FR+FC+BC
quad           FL+FR+BL+BR
quad(side)     FL+FR+SL+SR
3.1            FL+FR+FC+LFE
5.0            FL+FR+FC+BL+BR
5.0(side)      FL+FR+FC+SL+SR
4.1            FL+FR+FC+LFE+BC
5.1            FL+FR+FC+LFE+BL+BR
5.1(side)      FL+FR+FC+LFE+SL+SR
6.0            FL+FR+FC+BC+SL+SR
6.0(front)     FL+FR+FLC+FRC+SL+SR
3.1.2          FL+FR+FC+LFE+TFL+TFR
hexagonal      FL+FR+FC+BL+BR+BC
6.1            FL+FR+FC+LFE+BC+SL+SR
6.1(back)      FL+FR+FC+LFE+BL+BR+BC
6.1(front)     FL+FR+LFE+FLC+FRC+SL+SR
7.0            FL+FR+FC+BL+BR+SL+SR
7.0(front)     FL+FR+FC+FLC+FRC+SL+SR
7.1            FL+FR+FC+LFE+BL+BR+SL+SR
7.1(wide)      FL+FR+FC+LFE+BL+BR+FLC+FRC
7.1(wide-side) FL+FR+FC+LFE+FLC+FRC+SL+SR
5.1.2          FL+FR+FC+LFE+BL+BR+TFL+TFR
octagonal      FL+FR+FC+BL+BR+BC+SL+SR
cube           FL+FR+BL+BR+TFL+TFR+TBL+TBR
5.1.4          FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR
7.1.2          FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR
7.1.4          FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR
hexadecagonal  FL+FR+FC+BL+BR+BC+SL+SR+TFL+TFC+TFR+TBL+TBC+TBR+WL+WR
downmix        DL+DR
22.2           FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR

Testing av_channel_name
With AV_CHAN_FRONT_LEFT:                          FL
With AV_CHAN_FRONT_RIGHT:                         FR
With 63:                                       USR63
With AV_CHAN_AMBISONIC_BASE:                   AMBI0
With AV_CHAN_AMBISONIC_END:                 AMBI1023
Testing av_channel_description
With AV_CHAN_FRONT_LEFT:                  front left
With AV_CHAN_FRONT_RIGHT:                front right
With 63:                                     user 63
With AV_CHAN_AMBISONIC_BASE:         ambisonic ACN 0
With AV_CHAN_AMBISONIC_END:       ambisonic ACN 1023

Testing av_channel_from_string
With "FL":                                         0
With "FR":                                         1
With "USR63":                                     63
With "AMBI0":                                   1024
With "AMBI1023":                                2047

==Native layouts==

Testing av_channel_layout_from_string
With "0x3f":                                     5.1
With "63":                                       5.1
With "6c":                                       5.1
With "6C":                                6 channels
With "6 channels":                        6 channels
With "6 channels (FL+FR+FC+LFE+BL+BR)":          5.1
With "FL+FR+FC+LFE+BL+BR":                       5.1
With "5.1":                                      5.1
With "FL+FR+USR63":         3 channels (FL+FR+USR63)
With "FL+FR+FC+LFE+SL+SR":                 5.1(side)
With "5.1(side)":                          5.1(side)

Testing av_channel_layout_from_mask
With AV_CH_LAYOUT_5POINT1:                 5.1(side)

Testing av_channel_layout_channel_from_index
On 5.1(side) layout with 0:                        0
On 5.1(side) layout with 1:                        1
On 5.1(side) layout with 2:                        2
On 5.1(side) layout with 3:                        3
On 5.1(side) layout with 4:                        9
On 5.1(side) layout with 5:                       10
On 5.1(side) layout with 6:                       -1

Testing av_channel_layout_index_from_channel
On 5.1(side) layout with AV_CHAN_FRONT_LEFT:       0
On 5.1(side) layout with AV_CHAN_FRONT_RIGHT:      1
On 5.1(side) layout with AV_CHAN_FRONT_CENTER:     2
On 5.1(side) layout with AV_CHAN_LOW_FREQUENCY:    3
On 5.1(side) layout with AV_CHAN_SIDE_LEFT:        4
On 5.1(side) layout with AV_CHAN_SIDE_RIGHT:       5
On 5.1(side) layout with AV_CHAN_BACK_CENTER:     -1

Testing av_channel_layout_channel_from_string
On 5.1(side) layout with "FL":                     0
On 5.1(side) layout with "FR":                     1
On 5.1(side) layout with "FC":                     2
On 5.1(side) layout with "LFE":                    3
On 5.1(side) layout with "SL":                     9
On 5.1(side) layout with "SR":                    10
On 5.1(side) layout with "BC":                    -1

Testing av_channel_layout_index_from_string
On 5.1(side) layout with "FL":                     0
On 5.1(side) layout with "FR":                     1
On 5.1(side) layout with "FC":                     2
On 5.1(side) layout with "LFE":                    3
On 5.1(side) layout with "SL":                     4
On 5.1(side) layout with "SR":                     5
On 5.1(side) layout with "BC":                    -1

Testing av_channel_layout_subset
On 5.1(side) layout with AV_CH_LAYOUT_STEREO:    0x3
On 5.1(side) layout with AV_CH_LAYOUT_2POINT1:   0xb
On 5.1(side) layout with AV_CH_LAYOUT_4POINT1:   0xf

==Custom layouts==

Testing av_channel_layout_from_string
With "FL+FR+FC+BL+BR+LFE":    6 channels (FL+FR+FC+BL+BR+LFE)
With "2 channels (FR+FL)":                 2 channels (FR+FL)
With "ambisonic 1+FR+FL":      ambisonic 1+2 channels (FR+FL)
With "ambisonic 2+FC@Foo":    ambisonic 2+1 channels (FC@Foo)
With "FL@Foo+FR@Bar":              2 channels (FL@Foo+FR@Bar)
With "FR+FL@Foo+USR63@Foo":  3 channels (FR+FL@Foo+USR63@Foo)

Testing av_channel_layout_index_from_string
On "FR+FL@Foo+USR63@Foo" layout with "FR":                  0
On "FR+FL@Foo+USR63@Foo" layout with "FL":                  1
On "FR+FL@Foo+USR63@Foo" layout with "USR63":               2
On "FR+FL@Foo+USR63@Foo" layout with "Foo":                -1
On "FR+FL@Foo+USR63@Foo" layout with "@Foo":                1
On "FR+FL@Foo+USR63@Foo" layout with "FR@Foo":             -1
On "FR+FL@Foo+USR63@Foo" layout with "FL@Foo":              1
On "FR+FL@Foo+USR63@Foo" layout with "USR63@Foo":           2
On "FR+FL@Foo+USR63@Foo" layout with "BC":                 -1

Testing av_channel_layout_channel_from_string
On "FR+FL@Foo+USR63@Foo" layout with "FR":                  1
On "FR+FL@Foo+USR63@Foo" layout with "FL":                  0
On "FR+FL@Foo+USR63@Foo" layout with "USR63":              63
On "FR+FL@Foo+USR63@Foo" layout with "Foo":                -1
On "FR+FL@Foo+USR63@Foo" layout with "@Foo":                0
On "FR+FL@Foo+USR63@Foo" layout with "FR@Foo":             -1
On "FR+FL@Foo+USR63@Foo" layout with "FL@Foo":              0
On "FR+FL@Foo+USR63@Foo" layout with "USR63@Foo":          63
On "FR+FL@Foo+USR63@Foo" layout with "BC":                 -1

Testing av_channel_layout_index_from_channel
On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_FRONT_RIGHT:   0
On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_FRONT_LEFT:    1
On "FR+FL@Foo+USR63@Foo" layout with 63:                    2
On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_BACK_CENTER:  -1

Testing av_channel_layout_channel_from_index
On "FR+FL@Foo+USR63@Foo" layout with 0:                     1
On "FR+FL@Foo+USR63@Foo" layout with 1:                     0
On "FR+FL@Foo+USR63@Foo" layout with 2:                    63
On "FR+FL@Foo+USR63@Foo" layout with 3:                    -1

Testing av_channel_layout_subset
On "FR+FL@Foo+USR63@Foo" layout with AV_CH_LAYOUT_STEREO: 0x3
On "FR+FL@Foo+USR63@Foo" layout with AV_CH_LAYOUT_QUAD:   0x3

==Ambisonic layouts==

Testing av_channel_layout_from_string
With "ambisonic 1":                               ambisonic 1
With "ambisonic 2+stereo":                 ambisonic 2+stereo

Testing av_channel_layout_index_from_channel
On "ambisonic 2+stereo" layout with AV_CHAN_AMBISONIC_BASE: 0
On "ambisonic 2+stereo" layout with AV_CHAN_FRONT_LEFT:     9
On "ambisonic 2+stereo" layout with AV_CHAN_FRONT_RIGHT:   10
On "ambisonic 2+stereo" layout with AV_CHAN_BACK_CENTER:   -1

Testing av_channel_layout_channel_from_index
On "ambisonic 2+stereo" layout with 0:                   1024
On "ambisonic 2+stereo" layout with 9:                      0
On "ambisonic 2+stereo" layout with 10:                     1
On "ambisonic 2+stereo" layout with 11:                    -1

Testing av_channel_layout_subset
On "ambisonic 2+stereo" layout with AV_CH_LAYOUT_STEREO:  0x3
On "ambisonic 2+stereo" layout with AV_CH_LAYOUT_QUAD:    0x3
