From 7affbd17485aff57975b4ecfc9bb9293e5f354a6 Mon Sep 17 00:00:00 2001 From: nicodvb Date: Sat, 2 Apr 2005 10:30:19 +0000 Subject: added support for mpa layers 1 and 2 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15040 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/mp3_hdr.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/libmpdemux/mp3_hdr.c b/libmpdemux/mp3_hdr.c index 53528d9fbe..e431681dd6 100644 --- a/libmpdemux/mp3_hdr.c +++ b/libmpdemux/mp3_hdr.c @@ -36,6 +36,7 @@ int mp_mp3_get_lsf(unsigned char* hbuf){ */ int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate){ int stereo,ssize,lsf,framesize,padding,bitrate_index,sampling_frequency; + int layer, mult[3] = { 12000, 144000, 144000 }; unsigned long newhead = hbuf[0] << 24 | hbuf[1] << 16 | @@ -52,8 +53,9 @@ int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate){ } #endif - if((4-((newhead>>17)&3))!=3){ - mp_msg(MSGT_DEMUXER,MSGL_DBG2,"not layer-3\n"); + layer = 4-((newhead>>17)&3); + if(layer==4){ + mp_msg(MSGT_DEMUXER,MSGL_DBG2,"not layer-1/2/3\n"); return -1; } @@ -97,15 +99,20 @@ int mp_get_mp3_header(unsigned char* hbuf,int* chans, int* srate){ ssize = (stereo == 1) ? 17 : 32; if(!((newhead>>16)&0x1)) ssize += 2; // CRC - framesize = tabsel_123[lsf][2][bitrate_index] * 144000; + framesize = tabsel_123[lsf][layer-1][bitrate_index] * 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]); if(!framesize){ mp_msg(MSGT_DEMUXER,MSGL_DBG2,"invalid framesize/bitrate_index\n"); return -1; } framesize /= freqs[sampling_frequency]<MAXFRAMESIZE) return FALSE; if(srate) *srate = freqs[sampling_frequency]; -- cgit v1.2.3