changeset 31454:171320c96f2c

Make demux_ts detect LATM AAC as a separate type.
author reimar
date Mon, 21 Jun 2010 16:41:30 +0000
parents 91b713df588f
children 1a6d1a20ac79
files etc/codecs.conf libmpdemux/demux_ts.c
diffstat 2 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/etc/codecs.conf	Mon Jun 21 14:46:09 2010 +0000
+++ b/etc/codecs.conf	Mon Jun 21 16:41:30 2010 +0000
@@ -4016,7 +4016,7 @@
 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
--- a/libmpdemux/demux_ts.c	Mon Jun 21 14:46:09 2010 +0000
+++ b/libmpdemux/demux_ts.c	Mon Jun 21 16:41:30 2010 +0000
@@ -85,6 +85,7 @@
 	SL_PES_STREAM	= 0xD000000,
 	SL_SECTION	= 0xD100000,
 	MP4_OD		= 0xD200000,
+	AUDIO_AAC_LATM	= mmioFOURCC('M', 'P', '4', 'L'),
 } es_stream_type_t;
 
 typedef struct {
@@ -246,7 +247,7 @@
 } 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))
 
@@ -875,6 +876,8 @@
 		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
@@ -2508,8 +2511,10 @@
 				pmt->es[idx].type = VIDEO_MPEG4;
 				break;
 			case 0x0f:
+				pmt->es[idx].type = AUDIO_AAC;
+				break;
 			case 0x11:
-				pmt->es[idx].type = AUDIO_AAC;
+				pmt->es[idx].type = AUDIO_AAC_LATM;
 				break;
 			case 0x1b:
 				pmt->es[idx].type = VIDEO_H264;