summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ty.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_ty.c')
-rw-r--r--libmpdemux/demux_ty.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/libmpdemux/demux_ty.c b/libmpdemux/demux_ty.c
index 5df73c447b..f6a6ae708b 100644
--- a/libmpdemux/demux_ty.c
+++ b/libmpdemux/demux_ty.c
@@ -635,7 +635,17 @@ int demux_ty_fill_buffer( demuxer_t *demux )
if( demux->audio->id == aid )
{
ds = demux->audio;
- if( !ds->sh ) ds->sh = demux->a_streams[ aid ];
+ if( !ds->sh ) {
+ sh_audio_t* sh_a;
+ ds->sh = demux->a_streams[ aid ];
+ sh_a = (sh_audio_t*)ds->sh;
+ switch(aid & 0xE0){ // 1110 0000 b (high 3 bit: type low 5: id)
+ case 0x00: sh_a->format=0x50;break; // mpeg
+ case 0xA0: sh_a->format=0x10001;break; // dvd pcm
+ case 0x80: if((aid & 0xF8) == 0x88) sh_a->format=0x2001;//dts
+ else sh_a->format=0x2000;break; // ac3
+ }
+ }
}
}