diff options
author | joey <joey@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-05-28 20:12:09 +0000 |
---|---|---|
committer | joey <joey@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-05-28 20:12:09 +0000 |
commit | ad29da9c9bf13e86ace6c6996b1733f39e6f8a84 (patch) | |
tree | 1c8b51c0581a5fe0cd48a2d87ff3086b8aad1e03 /libmpdemux/demux_ty.c | |
parent | 9c135cb804f1cb9f681e3f4f279c3e724cd5eefc (diff) | |
download | mpv-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.c | 12 |
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 + } + } } } |