From 80cbcb6136ca8a4b93c8dd652e8349c7f9ac9dd4 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Mon, 29 Aug 2011 09:33:16 +0100 Subject: Add AAC LATM support from FFmpeg 0.7+ I've now tested this patch on Fedora 15 (FFmpeg 0.7) and Fedora 14 (FFmpeg 0.6), and am happy to report that it works fine on F15 and doesn't break xine-lib on F14. On F14, it also has the happy side effect of no longer trying to decode an LATM AAC stream with the xineplug_decode_faad.so plugin. (Which was something which never ended well anyway.) --- src/combined/ffmpeg/xine_audio.list | 1 + src/demuxers/demux_ts.c | 5 ++++- src/xine-engine/buffer.h | 1 + src/xine-engine/buffer_types.c | 8 ++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/combined/ffmpeg/xine_audio.list b/src/combined/ffmpeg/xine_audio.list index 5daa4d8b0..0ebbfbda6 100644 --- a/src/combined/ffmpeg/xine_audio.list +++ b/src/combined/ffmpeg/xine_audio.list @@ -42,6 +42,7 @@ WAVPACK WAVPACK WavPack AMR_NB AMR_NB AMR narrow band AMR_WB AMR_WB AMR wide band EAC3 EAC3 E-AC-3 +AAC_LATM AAC_LATM AAC LATM # disabled codecs (ref. configure.ac) ! AAC diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index cde28adfb..1f0640147 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -921,10 +921,13 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, m->type |= BUF_AUDIO_MPEG; break; case ISO_13818_PART7_AUDIO: - case ISO_14496_PART3_AUDIO: lprintf ("demux_ts: found AAC audio track.\n"); m->type |= BUF_AUDIO_AAC; break; + case ISO_14496_PART3_AUDIO: + lprintf ("demux_ts: found AAC LATM audio track.\n"); + m->type |= BUF_AUDIO_AAC_LATM; + break; default: lprintf ("demux_ts: unknown audio type: %d, defaulting to MPEG.\n", m->descriptor_tag); m->type |= BUF_AUDIO_MPEG; diff --git a/src/xine-engine/buffer.h b/src/xine-engine/buffer.h index 9198ff103..8f5d1152e 100644 --- a/src/xine-engine/buffer.h +++ b/src/xine-engine/buffer.h @@ -262,6 +262,7 @@ extern "C" { #define BUF_AUDIO_AMR_NB 0x033F0000 #define BUF_AUDIO_AMR_WB 0x03400000 #define BUF_AUDIO_EAC3 0x03410000 +#define BUF_AUDIO_AAC_LATM 0x03420000 /* spu buffer types: */ diff --git a/src/xine-engine/buffer_types.c b/src/xine-engine/buffer_types.c index 050043c64..913b29115 100644 --- a/src/xine-engine/buffer_types.c +++ b/src/xine-engine/buffer_types.c @@ -1192,6 +1192,14 @@ static const audio_db_t audio_db[] = { BUF_AUDIO_EAC3, "E-AC-3" }, +{ + { + ME_FOURCC('M', 'P', '4', 'L'), + 0 + }, + BUF_AUDIO_AAC_LATM, + "AAC LATM" +}, { { 0 }, 0, "last entry" } }; -- cgit v1.2.3