# HG changeset patch # User ulion # Date 1212843893 0 # Node ID 21ce55d8dde03d4a3464406d27bf21257aea1230 # Parent d3a0f537dbe8fb7d85c4543e166e35dc6ef4697f Fix channel order for libvorbis decoder, original patched by Nicolas George. diff -r d3a0f537dbe8 -r 21ce55d8dde0 libmpcodecs/ad_libvorbis.c --- a/libmpcodecs/ad_libvorbis.c Sat Jun 07 12:57:36 2008 +0000 +++ b/libmpcodecs/ad_libvorbis.c Sat Jun 07 13:04:53 2008 +0000 @@ -7,6 +7,7 @@ #include "config.h" #include "ad_internal.h" +#include "libaf/reorder_ch.h" static ad_info_t info = { @@ -316,6 +317,12 @@ // if (!samples) break; // why? how? } + if (len > 0 && ov->vi.channels >= 5) { + reorder_channel_nch(buf, AF_CHANNEL_LAYOUT_VORBIS_DEFAULT, + AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT, + ov->vi.channels, len / sh->samplesize, + sh->samplesize); + } return len;