summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-03-05 02:46:50 +0000
committerulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-03-05 02:46:50 +0000
commit6b8b2a51e5fb84713599d53587faa7e7d9090540 (patch)
tree630da688e2520f12b29b6d876687f2fc8a1bce37
parentb5ed673f32e33363d94d8156bda052465b0c9121 (diff)
downloadmpv-6b8b2a51e5fb84713599d53587faa7e7d9090540.tar.bz2
mpv-6b8b2a51e5fb84713599d53587faa7e7d9090540.tar.xz
Fix ffvorbis decoder's output channel order with channel reordering function.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26164 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libaf/reorder_ch.c2
-rw-r--r--libaf/reorder_ch.h5
-rw-r--r--libmpcodecs/ad_ffmpeg.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/libaf/reorder_ch.c b/libaf/reorder_ch.c
index 9531754827..c7c574ddbd 100644
--- a/libaf/reorder_ch.c
+++ b/libaf/reorder_ch.c
@@ -1108,6 +1108,7 @@ static int channel_layout_mapping_5ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
AF_CHANNEL_LAYOUT_LAVC_AC3_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_LIBA52_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_DCA_5CH_DEFAULT,
+ AF_CHANNEL_LAYOUT_LAVC_VORBIS_5CH_DEFAULT,
};
static int channel_layout_mapping_6ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
@@ -1117,6 +1118,7 @@ static int channel_layout_mapping_6ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
AF_CHANNEL_LAYOUT_LAVC_AC3_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_LIBA52_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_DCA_6CH_DEFAULT,
+ AF_CHANNEL_LAYOUT_LAVC_VORBIS_6CH_DEFAULT,
};
void reorder_channel_copy_nch(void *src,
diff --git a/libaf/reorder_ch.h b/libaf/reorder_ch.h
index d48766ab9f..eee506ae6c 100644
--- a/libaf/reorder_ch.h
+++ b/libaf/reorder_ch.h
@@ -71,6 +71,8 @@
#define AF_CHANNEL_LAYOUT_LAVC_LIBA52_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_E
#define AF_CHANNEL_LAYOUT_LAVC_DCA_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_D
#define AF_CHANNEL_LAYOUT_LAVC_DCA_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_D
+#define AF_CHANNEL_LAYOUT_LAVC_VORBIS_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_C
+#define AF_CHANNEL_LAYOUT_LAVC_VORBIS_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_C
#define AF_CHANNEL_MASK 0xFF
#define AF_GET_CH_NUM(A) ((A)&0x7F)
@@ -102,7 +104,8 @@ void reorder_channel(void *buf,
#define AF_CHANNEL_LAYOUT_LAVC_AC3_DEFAULT 3
#define AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT 4
#define AF_CHANNEL_LAYOUT_LAVC_DCA_DEFAULT 5
-#define AF_CHANNEL_LAYOUT_SOURCE_NUM 6
+#define AF_CHANNEL_LAYOUT_LAVC_VORBIS_DEFAULT 6
+#define AF_CHANNEL_LAYOUT_SOURCE_NUM 7
#define AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT AF_CHANNEL_LAYOUT_ALSA_DEFAULT
/// Optimized channel reorder between different audio sources and targets.
diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c
index 4fa95ce89b..d569d0835d 100644
--- a/libmpcodecs/ad_ffmpeg.c
+++ b/libmpcodecs/ad_ffmpeg.c
@@ -175,6 +175,8 @@ static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int m
src_ch_layout = AF_CHANNEL_LAYOUT_AAC_DEFAULT;
else if (!strcasecmp(codec, "liba52"))
src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT;
+ else if (!strcasecmp(codec, "vorbis"))
+ src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_VORBIS_DEFAULT;
else
src_ch_layout = AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT;
reorder_channel_nch(buf, src_ch_layout,