[FFmpeg-devel] [BUG] TrueHD decoder swaps back/side channels for 7.1 content

Jason Tackaberry tack
Mon Jun 14 03:11:08 CEST 2010


There appears to be a channel ordering problem in the TrueHD decoder.
In particular, TrueHD swaps the back (aka rear surround) and side (aka
surround) channels of 7.1 content compared to Vorbis and FLAC.

The order that comes out of the decoder appears to be:
        TrueHD order: L R C LFE Ls Rs Lrs Rrs
        Vorbis / FLAC order: L R C LFE Lrs Rrs Ls Rs
          where s = surround, rs = rear surround
I used the 7.1 TrueHD stream in the channel identification title on the
"Dolby - The Sound of High Definition" Bluray to identify the channels.

Assuming that the channels should follow the ordering as listed in
avcodec.h, the Vorbis/FLAC order appears to be correct, while TrueHD has
swapped the back and side channels.

Is this known or expected?  mlpdec.c doesn't seem to do any explicit
treatment of channel order, so perhaps it's expected that the caller
will need to deal with the decoder's native layout?

In general, 5.1 vs 7.1 channel ordering is quite slippery.  The PC side
of things (the WAVEEX and ALSA layouts) expects that in going from 5.1
to 7.1 you will add side speakers, whereas video industry expects that
in going from 5.1 to 7.1 you will add rear speakers.

Consequently, the meaning of "back left/right" (WAVEEX and ALSA) changes
from "surround left/right" in 5.1 to "rear surround left/right" in 7.1.
It's no wonder there's inconsistencies. :/


More information about the ffmpeg-devel mailing list