From 173108eadfa760bb59d277c0feb7236266978ce0 Mon Sep 17 00:00:00 2001 From: arpi Date: Sat, 2 Nov 2002 21:52:48 +0000 Subject: workaround old mencoder's cbr-mp3 header bug git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8060 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_avi.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'libmpdemux/demux_avi.c') diff --git a/libmpdemux/demux_avi.c b/libmpdemux/demux_avi.c index ae809af558..567217a82c 100644 --- a/libmpdemux/demux_avi.c +++ b/libmpdemux/demux_avi.c @@ -46,11 +46,18 @@ demux_stream_t* demux_avi_select_stream(demuxer_t *demux,unsigned int id){ priv->audio_block_size=sh->wf->nChannels*(sh->wf->wBitsPerSample/8); else priv->audio_block_size=1; // hope the best... + } else { + // workaround old mencoder's bug: + if(sh->audio.dwSampleSize==1 && sh->audio.dwScale==1 && + (sh->wf->nBlockAlign==1152 || sh->wf->nBlockAlign==576)){ + mp_msg(MSGT_DEMUX,MSGL_WARN,"AVI: Workarounding CBR-MP3 nBlockAlign header bug!\n"); + priv->audio_block_size=1; + } } } else { priv->audio_block_size=sh->audio.dwSampleSize; } - //printf("&&&&& setting blocksize to %d &&&&&\n",demux->audio->block_size); +// printf("&&&&& setting blocksize to %d &&&&&\n",priv->audio_block_size); } return demux->audio; } @@ -125,6 +132,7 @@ static int demux_avi_read_packet(demuxer_t *demux,demux_stream_t *ds,unsigned in // update blockcount: priv->audio_block_no+=priv->audio_block_size ? ((len+priv->audio_block_size-1)/priv->audio_block_size) : 1; +// printf("\raudio_block_no=%d \n",priv->audio_block_no); } else if(ds==demux->video){ // video @@ -151,6 +159,7 @@ static int demux_avi_read_packet(demuxer_t *demux,demux_stream_t *ds,unsigned in if(ds){ mp_dbg(MSGT_DEMUX,MSGL_DBG2,"DEMUX_AVI: Read %d data bytes from packet %04X\n",len,id); +// printf("READ[%c] %5.3f (%d) \n",ds==demux->video?'V':'A',pts,len); ds_read_packet(ds,demux->stream,len,pts,idxpos,flags); skip-=len; } -- cgit v1.2.3