summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2010-06-21 16:41:30 +0000
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-11-02 04:11:09 +0200
commitbdafaeb65cac8bde5a86cf47ea38130d198c85ea (patch)
tree9d4f2142bb12903bdea20eef01131cb11d7c6f2a
parentd09cc295785be55032532231f65b9c73eaf4a8ed (diff)
downloadmpv-bdafaeb65cac8bde5a86cf47ea38130d198c85ea.tar.bz2
mpv-bdafaeb65cac8bde5a86cf47ea38130d198c85ea.tar.xz
demux_ts: detect LATM AAC as a separate type
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31520 b3059339-0415-0410-9bf9-f77b7e298cf2 Place AUDIO_AAC_LATM definition next to AUDIO_AAC. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31521 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--etc/codecs.conf2
-rw-r--r--libmpdemux/demux_ts.c9
2 files changed, 8 insertions, 3 deletions
diff --git a/etc/codecs.conf b/etc/codecs.conf
index 95ac1aa6f8..69bffc612c 100644
--- a/etc/codecs.conf
+++ b/etc/codecs.conf
@@ -3928,7 +3928,7 @@ audiocodec ffdv
audiocodec faad
info "FAAD AAC (MPEG-2/MPEG-4 Audio)"
status working
- fourcc mp4a,MP4A
+ fourcc mp4a,MP4A,MP4L
fourcc "VLB " ; Used in NSV, not really working
fourcc "AAC " ; Used in NSV
fourcc "AACP" ; Used in NSV for AACPlus
diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c
index e33791fb89..d6ba8fda10 100644
--- a/libmpdemux/demux_ts.c
+++ b/libmpdemux/demux_ts.c
@@ -76,6 +76,7 @@ typedef enum
AUDIO_DTS = 0x2001,
AUDIO_LPCM_BE = 0x10001,
AUDIO_AAC = mmioFOURCC('M', 'P', '4', 'A'),
+ AUDIO_AAC_LATM = mmioFOURCC('M', 'P', '4', 'L'),
AUDIO_TRUEHD = mmioFOURCC('T', 'R', 'H', 'D'),
SPU_DVD = 0x3000000,
SPU_DVB = 0x3000001,
@@ -245,7 +246,7 @@ typedef struct {
} TS_pids_t;
-#define IS_AUDIO(x) (((x) == AUDIO_MP2) || ((x) == AUDIO_A52) || ((x) == AUDIO_LPCM_BE) || ((x) == AUDIO_AAC) || ((x) == AUDIO_DTS) || ((x) == AUDIO_TRUEHD))
+#define IS_AUDIO(x) (((x) == AUDIO_MP2) || ((x) == AUDIO_A52) || ((x) == AUDIO_LPCM_BE) || ((x) == AUDIO_AAC) || ((x) == AUDIO_DTS) || ((x) == AUDIO_TRUEHD) || ((x) == AUDIO_AAC_LATM))
#define IS_VIDEO(x) (((x) == VIDEO_MPEG1) || ((x) == VIDEO_MPEG2) || ((x) == VIDEO_MPEG4) || ((x) == VIDEO_H264) || ((x) == VIDEO_AVC) || ((x) == VIDEO_DIRAC) || ((x) == VIDEO_VC1))
#define IS_SUB(x) (((x) == SPU_DVD) || ((x) == SPU_DVB) || ((x) == SPU_TELETEXT))
@@ -874,6 +875,8 @@ static off_t ts_detect_streams(demuxer_t *demuxer, tsdemux_init_t *param)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO LPCM(pid=%d)", param->apid);
else if(param->atype == AUDIO_AAC)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO AAC(pid=%d)", param->apid);
+ else if(param->atype == AUDIO_AAC_LATM)
+ mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO AAC LATM(pid=%d)", param->apid);
else if(param->atype == AUDIO_TRUEHD)
mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO TRUEHD(pid=%d)", param->apid);
else
@@ -2507,9 +2510,11 @@ static int parse_pmt(ts_priv_t * priv, uint16_t progid, uint16_t pid, int is_sta
pmt->es[idx].type = VIDEO_MPEG4;
break;
case 0x0f:
- case 0x11:
pmt->es[idx].type = AUDIO_AAC;
break;
+ case 0x11:
+ pmt->es[idx].type = AUDIO_AAC_LATM;
+ break;
case 0x1b:
pmt->es[idx].type = VIDEO_H264;
break;