summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-08-22 04:31:30 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-08-22 04:31:30 +0300
commit7431eabaabb7d5d72f26b6d46a3333aa9cf0cd96 (patch)
tree4990bd44fde568a7cd7440eb895008e0bc760c00 /libmpcodecs
parent95da34aa071d64b21ef3e952b987ba3dcee84ca0 (diff)
parent2b8b5b7053030fd77ee53cc2069a8f44838564d4 (diff)
downloadmpv-7431eabaabb7d5d72f26b6d46a3333aa9cf0cd96.tar.bz2
mpv-7431eabaabb7d5d72f26b6d46a3333aa9cf0cd96.tar.xz
Merge svn changes up to r29544
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/ad_ffmpeg.c20
-rw-r--r--libmpcodecs/ae_lavc.c2
2 files changed, 7 insertions, 15 deletions
diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c
index 0a4db6c600..9829e57975 100644
--- a/libmpcodecs/ad_ffmpeg.c
+++ b/libmpcodecs/ad_ffmpeg.c
@@ -174,27 +174,19 @@ static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int m
if(len2>0){
if (((AVCodecContext *)sh_audio->context)->channels >= 5) {
int src_ch_layout = AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT;
+ int samplesize = av_get_bits_per_sample_format(((AVCodecContext *)
+ sh_audio->context)->sample_fmt) / 8;
const char *codec=((AVCodecContext*)sh_audio->context)->codec->name;
- if (!strcasecmp(codec, "ac3")
- || !strcasecmp(codec, "eac3"))
- src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_AC3_DEFAULT;
- else if (!strcasecmp(codec, "dca"))
- src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_DCA_DEFAULT;
- else if (!strcasecmp(codec, "libfaad")
- || !strcasecmp(codec, "mpeg4aac"))
- src_ch_layout = AF_CHANNEL_LAYOUT_AAC_DEFAULT;
- else if (!strcasecmp(codec, "liba52"))
- src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT;
+ if (!strcasecmp(codec, "aac"))
+ src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_AAC_DEC_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;
+ src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_DEFAULT;
reorder_channel_nch(buf, src_ch_layout,
AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT,
((AVCodecContext *)sh_audio->context)->channels,
- len2 / 2, 2);
+ len2 / samplesize, samplesize);
}
//len=len2;break;
if(len<0) len=len2; else len+=len2;
diff --git a/libmpcodecs/ae_lavc.c b/libmpcodecs/ae_lavc.c
index 205893189b..81b76ee062 100644
--- a/libmpcodecs/ae_lavc.c
+++ b/libmpcodecs/ae_lavc.c
@@ -106,7 +106,7 @@ static int encode_lavc(audio_encoder_t *encoder, uint8_t *dest, void *src, int s
!strcmp(lavc_acodec->name,"libfaac"))) {
int isac3 = !strcmp(lavc_acodec->name,"ac3");
reorder_channel_nch(src, AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT,
- isac3 ? AF_CHANNEL_LAYOUT_LAVC_AC3_DEFAULT
+ isac3 ? AF_CHANNEL_LAYOUT_LAVC_DEFAULT
: AF_CHANNEL_LAYOUT_AAC_DEFAULT,
encoder->params.channels,
size / 2, 2);