summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-06-07 13:04:53 +0000
committerulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-06-07 13:04:53 +0000
commit7b17a4e2c4e5a9bd158a5ddcb0f878c857bd738f (patch)
tree73b1f0fc64ee5d1c474b341c770851997592c5ae /libmpcodecs
parent2e7dc8d9fb513f032c02b8217407a9034f2b5b26 (diff)
downloadmpv-7b17a4e2c4e5a9bd158a5ddcb0f878c857bd738f.tar.bz2
mpv-7b17a4e2c4e5a9bd158a5ddcb0f878c857bd738f.tar.xz
Fix channel order for libvorbis decoder, original patched by Nicolas George.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27020 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/ad_libvorbis.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libmpcodecs/ad_libvorbis.c b/libmpcodecs/ad_libvorbis.c
index 900dc87707..f693d662cf 100644
--- a/libmpcodecs/ad_libvorbis.c
+++ b/libmpcodecs/ad_libvorbis.c
@@ -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 @@ static int decode_audio(sh_audio_t *sh,unsigned char *buf,int minlen,int maxlen)
// 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;