diff -u -r1.4 -r1.5 --- main/libmpdemux/demux_ty.c 2005/01/15 16:11:44 1.4 +++ main/libmpdemux/demux_ty.c 2005/05/28 20:12:09 1.5 @@ -635,7 +635,17 @@ 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 + } + } } }