summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ty.c
diff options
context:
space:
mode:
authorjoey <joey@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-28 20:12:09 +0000
committerjoey <joey@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-28 20:12:09 +0000
commitad29da9c9bf13e86ace6c6996b1733f39e6f8a84 (patch)
tree1c8b51c0581a5fe0cd48a2d87ff3086b8aad1e03 /libmpdemux/demux_ty.c
parent9c135cb804f1cb9f681e3f4f279c3e724cd5eefc (diff)
downloadmpv-ad29da9c9bf13e86ace6c6996b1733f39e6f8a84.tar.bz2
mpv-ad29da9c9bf13e86ace6c6996b1733f39e6f8a84.tar.xz
fix audio init crash
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15581 b3059339-0415-0410-9bf9-f77b7e298cf2
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
+ }
+ }
}
}