[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mplayer-users
Subject:    Re: [MPlayer-users] MPlayer-users] MPlayer cannot detect TrueHD
From:       Nico Sabbi <nicola.sabbi () poste ! it>
Date:       2009-07-25 22:27:19
Message-ID: 1248560839.24688.5.camel () linux-wcrt
[Download RAW message or body]

Il giorno gio, 23/07/2009 alle 14.22 -0300, Dâniel Fraga ha scritto:
> On Wed, 22 Jul 2009 11:13:36 +0200
> Nico Sabbi <Nicola.Sabbi@poste.it> wrote:
> 
> > in order to fix this I'll have to do something very nasty: hardcode 
> > substream_ids to codec type when there's and HDMV descriptor. Horrid, 
> > but it's the only way
> 
> 	I don't know if it's related but "Christian P. Schmidt"
> <schmidt@digadd.de> posted a patch on the ffmpeg devel list:
> 
> "Patch for LPCM in mpeg-ts (as seen on bluray)"
> 

The attached quick and dirty patch detects the MLP stream with -ausid
0x72,
but the decoder doesn't even start:
[mlp @ 0xb7a660]There must be no extraword for MLP.
Unknown/missing audio format -> no sound
ADecoder init failed :(
Cannot find codec for audio format 0x20504C4D.

I don't even know what it's complaining about, maybe an extension that
ffmlp doesn't handle?




["mlp.diff" (mlp.diff)]

Index: libmpdemux/demux_ts.c
===================================================================
--- libmpdemux/demux_ts.c	(revisione 29438)
+++ libmpdemux/demux_ts.c	(copia locale)
@@ -77,6 +77,7 @@
 	AUDIO_DTS	= 0x2001,
 	AUDIO_LPCM_BE  	= 0x10001,
 	AUDIO_AAC	= mmioFOURCC('M', 'P', '4', 'A'),
+	AUDIO_MLP	= mmioFOURCC('M', 'L', 'P', ' '),
 	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_MLP))  #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_MLP)
+		mp_msg(MSGT_DEMUXER, MSGL_INFO, "AUDIO MLP(pid=%d)", param->apid);
 	else
 	{
 		audio_found = 0;
@@ -1410,8 +1413,14 @@
 	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_MLP;
+			//fprintf(stderr, "\r\nFORZO MLP\r\n");
+		}
 	}
 
 	p += header_len + 9;



_______________________________________________
MPlayer-users mailing list
MPlayer-users@mplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-users

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic