+ // The previous checks would end up at 8 at this point for 22.2
+ if (layout == PREFIX_FOR_22POINT2 && tags == 16 && i == 8) {
+ const uint8_t (*reference_layout_map)[3] = aac_channel_layout_map[12];
+ for (int j = 0; j < tags; j++) {
+ if (layout_map[j][0] != reference_layout_map[j][0] ||
+ layout_map[j][2] != reference_layout_map[j][2])
+ goto end_of_layout_definition;
+ }
+
+ e2c_vec[i] = (struct elem_to_channel) {
+ .av_position = AV_CH_TOP_FRONT_CENTER,
+ .syn_ele = layout_map[i][0],
+ .elem_id = layout_map[i][1],
+ .aac_position = layout_map[i][2]
+ }; layout |= e2c_vec[i].av_position; i++;
+ i += assign_pair(e2c_vec, layout_map, i,
+ AV_CH_TOP_FRONT_LEFT,
+ AV_CH_TOP_FRONT_RIGHT,
+ AAC_CHANNEL_FRONT,
+ &layout);
+ i += assign_pair(e2c_vec, layout_map, i,
+ AV_CH_TOP_SIDE_LEFT,
+ AV_CH_TOP_SIDE_RIGHT,
+ AAC_CHANNEL_SIDE,
+ &layout);
+ e2c_vec[i] = (struct elem_to_channel) {
+ .av_position = AV_CH_TOP_CENTER,
+ .syn_ele = layout_map[i][0],
+ .elem_id = layout_map[i][1],
+ .aac_position = layout_map[i][2]
+ }; layout |= e2c_vec[i].av_position; i++;
+ i += assign_pair(e2c_vec, layout_map, i,
+ AV_CH_TOP_BACK_LEFT,
+ AV_CH_TOP_BACK_RIGHT,
+ AAC_CHANNEL_BACK,
+ &layout);
+ e2c_vec[i] = (struct elem_to_channel) {
+ .av_position = AV_CH_TOP_BACK_CENTER,
+ .syn_ele = layout_map[i][0],
+ .elem_id = layout_map[i][1],
+ .aac_position = layout_map[i][2]
+ }; layout |= e2c_vec[i].av_position; i++;
+ e2c_vec[i] = (struct elem_to_channel) {
+ .av_position = AV_CH_BOTTOM_FRONT_CENTER,
+ .syn_ele = layout_map[i][0],
+ .elem_id = layout_map[i][1],
+ .aac_position = layout_map[i][2]
+ }; layout |= e2c_vec[i].av_position; i++;
+ i += assign_pair(e2c_vec, layout_map, i,
+ AV_CH_BOTTOM_FRONT_LEFT,
+ AV_CH_BOTTOM_FRONT_RIGHT,
+ AAC_CHANNEL_FRONT,
+ &layout);
+ }
+
+end_of_layout_definition:
+