summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-17 22:12:32 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-17 22:12:32 +0000
commitfd894b987baadf5f8b1bfee9c1ed91ec9fe1e3d1 (patch)
tree222143f7026fed1025a997dd9d2ca2af82702b48 /libmpdemux
parent062f1005aa53a2340875a937e6704b6db3a906ab (diff)
downloadmpv-fd894b987baadf5f8b1bfee9c1ed91ec9fe1e3d1.tar.bz2
mpv-fd894b987baadf5f8b1bfee9c1ed91ec9fe1e3d1.tar.xz
fix & workaround possible sig8/sig11 in blocksize calculation
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7786 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_avi.c12
1 files changed, 10 insertions, 2 deletions
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;