summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/codecs.conf7
-rw-r--r--libmpdemux/demux_mov.c2
2 files changed, 9 insertions, 0 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 2a1993b892..6031d20697 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -2252,6 +2252,13 @@ audiocodec ffsonic
driver ffmpeg
dll "sonic"
+audiocodec ffmp3on4
+ info "FFmpeg Multi-channel MPEG layer-3 on MP4 audio decoder"
+ status working
+ format 0x1d61346d ; 'm','4','a',29 internal MPlayer fourcc
+ driver ffmpeg
+ dll "mp3on4"
+
audiocodec ffmp3
info "FFmpeg MPEG layer-3 audio decoder"
comment "integer only"
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c
index 9ac2994596..13a6a81b60 100644
--- a/libmpdemux/demux_mov.c
+++ b/libmpdemux/demux_mov.c
@@ -973,6 +973,8 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak
// dump away the codec specific configuration for the AAC decoder
if(esds.decoderConfigLen){
+ if( (esds.decoderConfig[0]>>3) == 29 )
+ sh->format = 0x1d61346d; // request multi-channel mp3 decoder
sh->codecdata_len = esds.decoderConfigLen;
sh->codecdata = (unsigned char *)malloc(sh->codecdata_len);
memcpy(sh->codecdata, esds.decoderConfig, sh->codecdata_len);