1
mirror of https://github.com/mpv-player/mpv synced 2024-07-31 16:29:58 +02:00

Fix channel order for ffmpeg flac codec.

This patch comes from Andrew de Quincey <adq_dvb at lidskialf dot net>.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27732 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
ulion 2008-10-09 07:46:20 +00:00
parent 74bb6be453
commit 78f37058ff
3 changed files with 8 additions and 1 deletions

View File

@ -1109,6 +1109,7 @@ static int channel_layout_mapping_5ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
AF_CHANNEL_LAYOUT_LAVC_LIBA52_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_DCA_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_VORBIS_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_FLAC_5CH_DEFAULT,
};
static int channel_layout_mapping_6ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
@ -1119,6 +1120,7 @@ static int channel_layout_mapping_6ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
AF_CHANNEL_LAYOUT_LAVC_LIBA52_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_DCA_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_VORBIS_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_FLAC_6CH_DEFAULT,
};
void reorder_channel_copy_nch(void *src,

View File

@ -73,6 +73,8 @@
#define AF_CHANNEL_LAYOUT_LAVC_DCA_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_D
#define AF_CHANNEL_LAYOUT_VORBIS_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_C
#define AF_CHANNEL_LAYOUT_VORBIS_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_C
#define AF_CHANNEL_LAYOUT_FLAC_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_A
#define AF_CHANNEL_LAYOUT_FLAC_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_A
#define AF_CHANNEL_MASK 0xFF
#define AF_GET_CH_NUM(A) ((A)&0x7F)
@ -105,7 +107,8 @@ void reorder_channel(void *buf,
#define AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT 4
#define AF_CHANNEL_LAYOUT_LAVC_DCA_DEFAULT 5
#define AF_CHANNEL_LAYOUT_VORBIS_DEFAULT 6
#define AF_CHANNEL_LAYOUT_SOURCE_NUM 7
#define AF_CHANNEL_LAYOUT_FLAC_DEFAULT 7
#define AF_CHANNEL_LAYOUT_SOURCE_NUM 8
#define AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT AF_CHANNEL_LAYOUT_ALSA_DEFAULT
/// Optimized channel reorder between different audio sources and targets.

View File

@ -177,6 +177,8 @@ static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int m
src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT;
else if (!strcasecmp(codec, "vorbis"))
src_ch_layout = AF_CHANNEL_LAYOUT_VORBIS_DEFAULT;
else if (!strcasecmp(codec, "flac"))
src_ch_layout = AF_CHANNEL_LAYOUT_FLAC_DEFAULT;
else
src_ch_layout = AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT;
reorder_channel_nch(buf, src_ch_layout,