mpg123-1.32.8
This commit is contained in:
@@ -135,16 +135,16 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
int powdiff = (single == SINGLE_MIX) ? 4 : 0;
|
||||
|
||||
const int tabs[2][5] = { { 2,9,5,3,4 } , { 1,8,1,2,9 } };
|
||||
const int *tab = tabs[fr->lsf];
|
||||
const int *tab = tabs[fr->hdr.lsf];
|
||||
|
||||
{ /* First ensure we got enough bits available. */
|
||||
unsigned int needbits = 0;
|
||||
needbits += tab[1]; /* main_data_begin */
|
||||
needbits += stereo == 1 ? tab[2] : tab[3]; /* private */
|
||||
if(!fr->lsf)
|
||||
if(!fr->hdr.lsf)
|
||||
needbits += stereo*4; /* scfsi */
|
||||
/* For each granule for each channel ... */
|
||||
needbits += tab[0]*stereo*(29+tab[4]+1+22+(!fr->lsf?1:0)+2);
|
||||
needbits += tab[0]*stereo*(29+tab[4]+1+22+(!fr->hdr.lsf?1:0)+2);
|
||||
if(fr->bits_avail < needbits) \
|
||||
{
|
||||
if(NOQUIET)
|
||||
@@ -162,7 +162,7 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
|
||||
/* overwrite main_data_begin for the really available bit reservoir */
|
||||
backbits(fr, tab[1]);
|
||||
if(fr->lsf == 0)
|
||||
if(fr->hdr.lsf == 0)
|
||||
{
|
||||
fr->wordpointer[0] = (unsigned char) (fr->bitreservoir >> 1);
|
||||
fr->wordpointer[1] = (unsigned char) ((fr->bitreservoir & 1) << 7);
|
||||
@@ -171,7 +171,7 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
|
||||
/* zero "side-info" data for a silence-frame
|
||||
without touching audio data used as bit reservoir for following frame */
|
||||
memset(fr->wordpointer+2, 0, fr->ssize-2);
|
||||
memset(fr->wordpointer+2, 0, fr->hdr.ssize-2);
|
||||
|
||||
/* reread the new bit reservoir offset */
|
||||
si->main_data_begin = getbits(fr, tab[1]);
|
||||
@@ -179,11 +179,11 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
|
||||
/* Keep track of the available data bytes for the bit reservoir.
|
||||
CRC is included in ssize already. */
|
||||
fr->bitreservoir = fr->bitreservoir + fr->framesize - fr->ssize;
|
||||
fr->bitreservoir = fr->bitreservoir + fr->hdr.framesize - fr->hdr.ssize;
|
||||
|
||||
/* Limit the reservoir to the max for MPEG 1.0 or 2.x . */
|
||||
if(fr->bitreservoir > (unsigned int) (fr->lsf == 0 ? 511 : 255))
|
||||
fr->bitreservoir = (fr->lsf == 0 ? 511 : 255);
|
||||
if(fr->bitreservoir > (unsigned int) (fr->hdr.lsf == 0 ? 511 : 255))
|
||||
fr->bitreservoir = (fr->hdr.lsf == 0 ? 511 : 255);
|
||||
|
||||
/* Now back into less commented territory. It's code. It works. */
|
||||
|
||||
@@ -192,7 +192,7 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
else
|
||||
si->private_bits = getbits(fr, tab[3]);
|
||||
|
||||
if(!fr->lsf) for(ch=0; ch<stereo; ch++)
|
||||
if(!fr->hdr.lsf) for(ch=0; ch<stereo; ch++)
|
||||
{
|
||||
si->ch[ch].gr[0].scfsi = -1;
|
||||
si->ch[ch].gr[1].scfsi = getbits(fr, 4);
|
||||
@@ -257,14 +257,14 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
}
|
||||
|
||||
/* region_count/start parameters are implicit in this case. */
|
||||
if( (!fr->lsf || (gr_info->block_type == 2)) && !fr->mpeg25)
|
||||
if( (!fr->hdr.lsf || (gr_info->block_type == 2)) && !fr->hdr.mpeg25)
|
||||
{
|
||||
gr_info->region1start = 36>>1;
|
||||
gr_info->region2start = 576>>1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(fr->mpeg25)
|
||||
if(fr->hdr.mpeg25)
|
||||
{
|
||||
int r0c,r1c;
|
||||
if((gr_info->block_type == 2) && (!gr_info->mixed_block_flag) ) r0c = 5;
|
||||
@@ -299,7 +299,7 @@ static int III_get_side_info(mpg123_handle *fr, struct III_sideinfo *si,int ster
|
||||
gr_info->block_type = 0;
|
||||
gr_info->mixed_block_flag = 0;
|
||||
}
|
||||
if(!fr->lsf) gr_info->preflag = get1bit(fr);
|
||||
if(!fr->hdr.lsf) gr_info->preflag = get1bit(fr);
|
||||
|
||||
gr_info->scalefac_scale = get1bit(fr);
|
||||
gr_info->count1table_select = get1bit(fr);
|
||||
@@ -1824,7 +1824,7 @@ int INT123_do_layer3(mpg123_handle *fr)
|
||||
int stereo = fr->stereo;
|
||||
int single = fr->single;
|
||||
int ms_stereo,i_stereo;
|
||||
int sfreq = fr->sampling_frequency;
|
||||
int sfreq = fr->hdr.sampling_frequency;
|
||||
int stereo1,granules;
|
||||
|
||||
if(stereo == 1)
|
||||
@@ -1837,14 +1837,14 @@ int INT123_do_layer3(mpg123_handle *fr)
|
||||
else
|
||||
stereo1 = 2;
|
||||
|
||||
if(fr->mode == MPG_MD_JOINT_STEREO)
|
||||
if(fr->hdr.mode == MPG_MD_JOINT_STEREO)
|
||||
{
|
||||
ms_stereo = (fr->mode_ext & 0x2)>>1;
|
||||
i_stereo = fr->mode_ext & 0x1;
|
||||
ms_stereo = (fr->hdr.mode_ext & 0x2)>>1;
|
||||
i_stereo = fr->hdr.mode_ext & 0x1;
|
||||
}
|
||||
else ms_stereo = i_stereo = 0;
|
||||
|
||||
granules = fr->lsf ? 1 : 2;
|
||||
granules = fr->hdr.lsf ? 1 : 2;
|
||||
|
||||
/* quick hack to keep the music playing */
|
||||
/* after having seen this nasty test file... */
|
||||
@@ -1859,7 +1859,7 @@ int INT123_do_layer3(mpg123_handle *fr)
|
||||
if(fr->pinfo)
|
||||
{
|
||||
fr->pinfo->maindata = sideinfo.main_data_begin;
|
||||
fr->pinfo->padding = fr->padding;
|
||||
fr->pinfo->padding = fr->hdr.padding;
|
||||
}
|
||||
#endif
|
||||
for(gr=0;gr<granules;gr++)
|
||||
@@ -1880,7 +1880,7 @@ int INT123_do_layer3(mpg123_handle *fr)
|
||||
, gr_info->part2_3_length, fr->bits_avail );
|
||||
return clip;
|
||||
}
|
||||
if(fr->lsf)
|
||||
if(fr->hdr.lsf)
|
||||
part2bits = III_get_scale_factors_2(fr, scalefacs[0],gr_info,0);
|
||||
else
|
||||
part2bits = III_get_scale_factors_1(fr, scalefacs[0],gr_info,0,gr);
|
||||
@@ -1920,7 +1920,7 @@ int INT123_do_layer3(mpg123_handle *fr)
|
||||
{
|
||||
struct gr_info_s *gr_info = &(sideinfo.ch[1].gr[gr]);
|
||||
long part2bits;
|
||||
if(fr->lsf)
|
||||
if(fr->hdr.lsf)
|
||||
part2bits = III_get_scale_factors_2(fr, scalefacs[1],gr_info,i_stereo);
|
||||
else
|
||||
part2bits = III_get_scale_factors_1(fr, scalefacs[1],gr_info,1,gr);
|
||||
@@ -1970,7 +1970,7 @@ int INT123_do_layer3(mpg123_handle *fr)
|
||||
}
|
||||
}
|
||||
|
||||
if(i_stereo) III_i_stereo(hybridIn,scalefacs[1],gr_info,sfreq,ms_stereo,fr->lsf);
|
||||
if(i_stereo) III_i_stereo(hybridIn,scalefacs[1],gr_info,sfreq,ms_stereo,fr->hdr.lsf);
|
||||
|
||||
if(ms_stereo || i_stereo || (single == SINGLE_MIX) )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user