> Note that ffmpeg channel layout defines the order of channels by the positions of the bits. It does not allow to change this order.

```{AE_CH_SL, AE_CH_SR, AE_CH_FC, AE_CH_LFE, AE_CH_BL , AE_CH_BR, AE_CH_FL, AE_CH_FR, AE_CH_NULL };``` is in the ffmpeg channel order.

We want to use FFmpeg FL,FR (first two positions) as SL,SR and FFmpeg FLOC,FROC (last two positions) as FL,FR. Without the line the regular mapping would always be AE_CH_FL, AE_CH_FR, AE_CH_FC, AE_CH_LFE, AE_CH_BL , AE_CH_BR, AE_CH_FLOC, AE_CH_FROC, i.e. we just switch FL=>SL and FLOC=>FL. In my opinion just using a static array is okay, there is no need to complicate things by creating m_channelLayout dynamically here, since it is the same every time this workaround is applied.

> What you suggest here contradicts with what @anssih said: we can't map a FLOC into FL and FL into SL.

This is for wrongly encoded AAC 7.1 files that have front speakers encoded as FLOC/FROC and side speakers as FL/FR, apparently at least some such files exist (I'm assuming the amount of actual FL,FR,FLOC,FROC,FC,LFE,BL,BR 7.1 AAC files is negligible). After the workaround the channels for such files are mapped like FAAD (and therefore e.g. VLC) does it, i.e. out-of-spec but as regular 7.1 without FLOC/FROC. I'm not 100% sure if we should do that if FFmpeg people don't want such workaround there, but I'm OK with it either way.