diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-08-01 18:36:50 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-08-01 18:36:50 +0000 |
commit | 1da3dc91bde1a06a5cfc1fdc8a495098cd5122be (patch) | |
tree | c593b88206f478a4199ea9b0766dc948a1724fd0 /libmpdemux/mp3_hdr.c | |
parent | fa38f52244327391383595ec27385e2e13775e36 (diff) | |
download | mpv-1da3dc91bde1a06a5cfc1fdc8a495098cd5122be.tar.bz2 mpv-1da3dc91bde1a06a5cfc1fdc8a495098cd5122be.tar.xz |
set i_bps in demux_audio for WAV and MP3 to avoid division by zero before
decoder sets it.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16163 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/mp3_hdr.c')
-rw-r--r-- | libmpdemux/mp3_hdr.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libmpdemux/mp3_hdr.c b/libmpdemux/mp3_hdr.c index d139e99a0d..591e04d570 100644 --- a/libmpdemux/mp3_hdr.c +++ b/libmpdemux/mp3_hdr.c @@ -34,8 +34,9 @@ int mp_mp3_get_lsf(unsigned char* hbuf){ /* * return frame size or -1 (bad frame) */ -int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate, int* spf, int* mpa_layer){ +int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate, int* spf, int* mpa_layer, int* br){ int stereo,ssize,lsf,framesize,padding,bitrate_index,sampling_frequency, divisor; + int bitrate; int layer, mult[3] = { 12000, 144000, 144000 }; unsigned long newhead = hbuf[0] << 24 | @@ -99,7 +100,8 @@ int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate, int* spf, int* ssize = (stereo == 1) ? 17 : 32; if(!((newhead>>16)&0x1)) ssize += 2; // CRC - framesize = tabsel_123[lsf][layer-1][bitrate_index] * mult[layer-1]; + bitrate = tabsel_123[lsf][layer-1][bitrate_index]; + framesize = bitrate * mult[layer-1]; mp_msg(MSGT_DEMUXER,MSGL_DBG2,"FRAMESIZE: %d, layer: %d, bitrate: %d, mult: %d\n", framesize, layer, tabsel_123[lsf][layer-1][bitrate_index], mult[layer-1]); @@ -131,6 +133,7 @@ int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate, int* spf, int* } if(mpa_layer) *mpa_layer = layer; if(chans) *chans = stereo; + if(br) *br = bitrate; return framesize; } |