[MPlayer-users] TrueHD

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sun Jan 24 20:52:54 CET 2010


On Sun, Jan 24, 2010 at 07:36:19PM +0000, Carl Eugen Hoyos wrote:
> Rolf Ernst <rolf.ernst <at> silverlightning.org> writes:
> 
> > Directory is 'dts_dont_play'.
> 
> dts_wont_play
> The issue with the native ts demuxer is known, afaict, several distributions use
> a work-around and I believe I reported this (or a very similar) issue on one of
> the mailing lists.
> Work-around is to use -demuxer lavf.

This one would work, however I do not know if it will break TrueHD files
Index: libmpdemux/demux_ts.c
===================================================================
--- libmpdemux/demux_ts.c	(revision 30425)
+++ libmpdemux/demux_ts.c	(working copy)
@@ -1418,7 +1418,7 @@
 		int ssid = parse_pes_extension_fields(p, pkt_len);
 		if((audio_substream_id!=-1) && (ssid != audio_substream_id))
 			return 0;
-		if(ssid == 0x72)
+		if(ssid == 0x72 && type_from_pmt != AUDIO_DTS)
 			es->type  = type_from_pmt = AUDIO_TRUEHD;
 	}
 

If you have a file that breaks with below patch, you can use it to test the above:
Index: libmpdemux/demux_ts.c
===================================================================
--- libmpdemux/demux_ts.c	(revision 30425)
+++ libmpdemux/demux_ts.c	(working copy)
@@ -1418,8 +1418,6 @@
 		int ssid = parse_pes_extension_fields(p, pkt_len);
 		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;


More information about the MPlayer-users mailing list