Re: MPlayer cannot detect TrueHD audio tracks in m2ts blu-ray rip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



On Wednesday 29 July 2009 16:26:29 Nico Sabbi wrote:
> On Tuesday 21 July 2009 13:24:44 Nico Sabbi wrote:
> > > 	So, could somebody *please* explain to me how can I select the
> > > 4352 audio track and the correct substream?
> > >
> > > 	Thank you very much!
> >
> > upload a sample to incoming and post the filename, please
>
> shitty but working patch attached. You  still need to specify
> -ausid 0x72


buggy. Right one attached:
Index: etc/codecs.conf
===================================================================
--- etc/codecs.conf	(revision 29435)
+++ etc/codecs.conf	(working copy)
@@ -3547,6 +3547,13 @@
   fourcc "MLP " ; internal MPlayer FourCC
   driver ffmpeg
   dll "mlp"
+  
+audiocodec fftruehd
+  info "FFmpeg TrueHD"
+  status working
+  fourcc TRHD ; internal MPlayer FourCC
+  driver ffmpeg
+  dll "truehd"
 
 audiocodec ffnellymoser
   info "FFmpeg Nellymoser Audio"
Index: libmpdemux/demux_ts.c
===================================================================
--- libmpdemux/demux_ts.c	(revision 29435)
+++ libmpdemux/demux_ts.c	(working copy)
@@ -77,6 +77,7 @@
 	AUDIO_DTS	= 0x2001,
 	AUDIO_LPCM_BE  	= 0x10001,
 	AUDIO_AAC	= mmioFOURCC('M', 'P', '4', 'A'),
+	AUDIO_TRUEHD	= mmioFOURCC('T', 'R', 'H', 'D'),
 	SPU_DVD		= 0x3000000,
 	SPU_DVB		= 0x3000001,
 	PES_PRIVATE1	= 0xBD00000,
@@ -244,7 +245,7 @@
 } TS_pids_t;
 
 
-#define IS_AUDIO(x) (((x) == AUDIO_MP2) || ((x) == AUDIO_A52) || ((x) == AUDIO_LPCM_BE) || ((x) == AUDIO_AAC) || ((x) == AUDIO_DTS))
+#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_VIDEO(x) (((x) == VIDEO_MPEG1) || ((x) == VIDEO_MPEG2) || ((x) == VIDEO_MPEG4) || ((x) == VIDEO_H264) || ((x) == VIDEO_AVC)  || ((x) == VIDEO_VC1))
 
 static int ts_parse(demuxer_t *demuxer, ES_stream_t *es, unsigned char *packet, int probe);
@@ -871,6 +872,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_TRUEHD)
+		mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO TRUEHD(pid=%d)", param->apid);
 	else
 	{
 		audio_found = 0;
@@ -1410,8 +1413,11 @@
 	if(stream_id==0xfd)
 	{
 		int ssid = parse_pes_extension_fields(p, pkt_len);
+		//fprintf(stderr, "\r\nssid: %d, 0x%x\r\n", ssid, ssid);
 		if((audio_substream_id!=-1) && (ssid != audio_substream_id))
 			return 0;
+		if(ssid == 0x72)
+			es->type  = type_from_pmt = AUDIO_TRUEHD;
 	}
 
 	p += header_len + 9;
Index: libmpdemux/mp_taglists.c
===================================================================
--- libmpdemux/mp_taglists.c	(revision 29435)
+++ libmpdemux/mp_taglists.c	(working copy)
@@ -36,6 +36,7 @@
     { CODEC_ID_EAC3,              MKTAG('E', 'A', 'C', '3')},
     { CODEC_ID_INTERPLAY_DPCM,    MKTAG('I', 'N', 'P', 'A')},
     { CODEC_ID_MLP,               MKTAG('M', 'L', 'P', ' ')},
+    { CODEC_ID_TRUEHD,            MKTAG('T', 'R', 'H', 'D')},
     { CODEC_ID_MUSEPACK7,         MKTAG('M', 'P', 'C', ' ')},
     { CODEC_ID_MUSEPACK8,         MKTAG('M', 'P', 'C', '8')},
     { CODEC_ID_NELLYMOSER,        MKTAG('N', 'E', 'L', 'L')},
_______________________________________________
MPlayer-users mailing list
MPlayer-users@xxxxxxxxxxxx
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-users

[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux