From fd894b987baadf5f8b1bfee9c1ed91ec9fe1e3d1 Mon Sep 17 00:00:00 2001 From: arpi Date: Thu, 17 Oct 2002 22:12:32 +0000 Subject: fix & workaround possible sig8/sig11 in blocksize calculation git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7786 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_avi.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'libmpdemux/demux_avi.c') diff --git a/libmpdemux/demux_avi.c b/libmpdemux/demux_avi.c index af2b8fb33b..9616e38413 100644 --- a/libmpdemux/demux_avi.c +++ b/libmpdemux/demux_avi.c @@ -31,9 +31,17 @@ demux_stream_t* demux_avi_select_stream(demuxer_t *demux,unsigned int id){ if(stream_id==demux->audio->id){ if(!demux->audio->sh){ - demux->audio->sh=demux->a_streams[stream_id]; + sh_audio_t* sh; + sh=demux->audio->sh=demux->a_streams[stream_id]; mp_msg(MSGT_DEMUX,MSGL_V,"Auto-selected AVI audio ID = %d\n",demux->audio->id); - demux->audio->block_size=((sh_audio_t*)(demux->audio->sh))->wf->nBlockAlign; + if(sh->wf){ + demux->audio->block_size=sh->wf->nBlockAlign; + if(!demux->audio->block_size){ + // for PCM audio we can calculate the blocksize: + if(sh->format==1) demux->audio->block_size=sh->wf->nChannels*(sh->wf->wBitsPerSample/8); + if(!demux->audio->block_size) demux->audio->block_size=1; // bug! + } + } //printf("&&&&& setting blocksize to %d &&&&&\n",demux->audio->block_size); } return demux->audio; -- cgit v1.2.3