|
|
|
@ -387,7 +387,7 @@ static int III_get_side_info(struct III_sideinfo *si,int stereo,
|
|
|
|
|
|
|
|
|
|
for (gr=0; gr<tab[0]; gr++) {
|
|
|
|
|
for (ch=0; ch<stereo; ch++) {
|
|
|
|
|
register struct gr_info_s *gr_info = &(si->ch[ch].gr[gr]);
|
|
|
|
|
struct gr_info_s *gr_info = &(si->ch[ch].gr[gr]);
|
|
|
|
|
|
|
|
|
|
gr_info->part2_3_length = getbits(&bsi,12);
|
|
|
|
|
gr_info->big_values = getbits(&bsi,9);
|
|
|
|
@ -662,8 +662,8 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
*/
|
|
|
|
|
int i,max[4];
|
|
|
|
|
int step=0,lwin=3,cb=0;
|
|
|
|
|
register real v = 0.0;
|
|
|
|
|
register int *m,mc;
|
|
|
|
|
real v = 0.0;
|
|
|
|
|
int *m,mc;
|
|
|
|
|
|
|
|
|
|
if(gr_info->mixed_block_flag) {
|
|
|
|
|
max[3] = -1;
|
|
|
|
@ -683,7 +683,7 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
int lp = l[i];
|
|
|
|
|
struct newhuff *h = ht+gr_info->table_select[i];
|
|
|
|
|
for(;lp;lp--,mc--) {
|
|
|
|
|
register int x,y;
|
|
|
|
|
int x,y;
|
|
|
|
|
if( (!mc) ) {
|
|
|
|
|
mc = *m++;
|
|
|
|
|
xrpnt = ((real *) xr) + (*m++);
|
|
|
|
@ -699,7 +699,7 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
register short *val = h->table;
|
|
|
|
|
short *val = h->table;
|
|
|
|
|
REFRESH_MASK;
|
|
|
|
|
while((y=*val++)<0) {
|
|
|
|
|
if (mask < 0)
|
|
|
|
@ -763,7 +763,7 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
|
|
|
|
|
for(;l3 && (part2remain+num > 0);l3--) {
|
|
|
|
|
struct newhuff *h = htc+gr_info->count1table_select;
|
|
|
|
|
register short *val = h->table,a;
|
|
|
|
|
short *val = h->table,a;
|
|
|
|
|
|
|
|
|
|
REFRESH_MASK;
|
|
|
|
|
while((a=*val++)<0) {
|
|
|
|
@ -849,7 +849,7 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
int i,max = -1;
|
|
|
|
|
int cb = 0;
|
|
|
|
|
int *m = map[sfreq][2];
|
|
|
|
|
register real v = 0.0;
|
|
|
|
|
real v = 0.0;
|
|
|
|
|
int mc = 0;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -876,7 +876,7 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
register short *val = h->table;
|
|
|
|
|
short *val = h->table;
|
|
|
|
|
REFRESH_MASK;
|
|
|
|
|
while((y=*val++)<0) {
|
|
|
|
|
if (mask < 0)
|
|
|
|
@ -943,7 +943,7 @@ static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,
|
|
|
|
|
*/
|
|
|
|
|
for(;l3 && (part2remain+num > 0);l3--) {
|
|
|
|
|
struct newhuff *h = htc+gr_info->count1table_select;
|
|
|
|
|
register short *val = h->table,a;
|
|
|
|
|
short *val = h->table,a;
|
|
|
|
|
|
|
|
|
|
REFRESH_MASK;
|
|
|
|
|
while((a=*val++)<0) {
|
|
|
|
@ -1191,7 +1191,7 @@ static void III_antialias(real xr[SBLIMIT][SSLIMIT],struct gr_info_s *gr_info) {
|
|
|
|
|
|
|
|
|
|
for(ss=7;ss>=0;ss--)
|
|
|
|
|
{ /* upper and lower butterfly inputs */
|
|
|
|
|
register real bu = *--xr2,bd = *xr1;
|
|
|
|
|
real bu = *--xr2,bd = *xr1;
|
|
|
|
|
*xr2 = REAL_MUL(bu, *cs) - REAL_MUL(bd, *ca);
|
|
|
|
|
*xr1++ = REAL_MUL(bd, *cs++) + REAL_MUL(bu, *ca++);
|
|
|
|
|
}
|
|
|
|
@ -1247,7 +1247,7 @@ void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
register real *in = inbuf;
|
|
|
|
|
real *in = inbuf;
|
|
|
|
|
|
|
|
|
|
in[17]+=in[16]; in[16]+=in[15]; in[15]+=in[14];
|
|
|
|
|
in[14]+=in[13]; in[13]+=in[12]; in[12]+=in[11];
|
|
|
|
@ -1415,10 +1415,10 @@ void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf)
|
|
|
|
|
ts[SBLIMIT*(9+(v))] = out1[9+(v)] + REAL_MUL(tmpval, w[9+(v)]); }
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
register real *out2 = o2;
|
|
|
|
|
register real *w = wintab;
|
|
|
|
|
register real *out1 = o1;
|
|
|
|
|
register real *ts = tsbuf;
|
|
|
|
|
real *out2 = o2;
|
|
|
|
|
real *w = wintab;
|
|
|
|
|
real *out1 = o1;
|
|
|
|
|
real *ts = tsbuf;
|
|
|
|
|
|
|
|
|
|
MACRO(0);
|
|
|
|
|
MACRO(1);
|
|
|
|
@ -1453,11 +1453,11 @@ void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf)
|
|
|
|
|
sum1 = REAL_MUL((tmp2b - tmp1b), tfcos36[(v)]); \
|
|
|
|
|
MACRO0(v); }
|
|
|
|
|
|
|
|
|
|
register const real *c = COS9;
|
|
|
|
|
register real *out2 = o2;
|
|
|
|
|
register real *w = wintab;
|
|
|
|
|
register real *out1 = o1;
|
|
|
|
|
register real *ts = tsbuf;
|
|
|
|
|
const real *c = COS9;
|
|
|
|
|
real *out2 = o2;
|
|
|
|
|
real *w = wintab;
|
|
|
|
|
real *out1 = o1;
|
|
|
|
|
real *ts = tsbuf;
|
|
|
|
|
|
|
|
|
|
real ta33,ta66,tb33,tb66;
|
|
|
|
|
|
|
|
|
@ -1525,7 +1525,7 @@ void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf)
|
|
|
|
|
/*
|
|
|
|
|
* new DCT12
|
|
|
|
|
*/
|
|
|
|
|
static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,register real *ts)
|
|
|
|
|
static void dct12(real *in,real *rawout1,real *rawout2,real *wi,real *ts)
|
|
|
|
|
{
|
|
|
|
|
#define DCT12_PART1 \
|
|
|
|
|
in5 = in[5*3]; \
|
|
|
|
@ -1560,7 +1560,7 @@ static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,registe
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
real in0,in1,in2,in3,in4,in5;
|
|
|
|
|
register real *out1 = rawout1;
|
|
|
|
|
real *out1 = rawout1;
|
|
|
|
|
ts[SBLIMIT*0] = out1[0]; ts[SBLIMIT*1] = out1[1]; ts[SBLIMIT*2] = out1[2];
|
|
|
|
|
ts[SBLIMIT*3] = out1[3]; ts[SBLIMIT*4] = out1[4]; ts[SBLIMIT*5] = out1[5];
|
|
|
|
|
|
|
|
|
@ -1596,7 +1596,7 @@ static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,registe
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
real in0,in1,in2,in3,in4,in5;
|
|
|
|
|
register real *out2 = rawout2;
|
|
|
|
|
real *out2 = rawout2;
|
|
|
|
|
|
|
|
|
|
DCT12_PART1
|
|
|
|
|
|
|
|
|
@ -1630,7 +1630,7 @@ static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,registe
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
real in0,in1,in2,in3,in4,in5;
|
|
|
|
|
register real *out2 = rawout2;
|
|
|
|
|
real *out2 = rawout2;
|
|
|
|
|
out2[12]=out2[13]=out2[14]=out2[15]=out2[16]=out2[17]=0.0;
|
|
|
|
|
|
|
|
|
|
DCT12_PART1
|
|
|
|
@ -1816,16 +1816,16 @@ int do_layer3(struct mpstr *mp,struct frame *fr,int outmode,struct audio_info_st
|
|
|
|
|
switch(single) {
|
|
|
|
|
case 3:
|
|
|
|
|
{
|
|
|
|
|
register int i;
|
|
|
|
|
register real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1];
|
|
|
|
|
int i;
|
|
|
|
|
real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1];
|
|
|
|
|
for(i=0;i<SSLIMIT*gr_info->maxb;i++,in0++)
|
|
|
|
|
*in0 = (*in0 + *in1++); /* *0.5 done by pow-scale */
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
{
|
|
|
|
|
register int i;
|
|
|
|
|
register real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1];
|
|
|
|
|
int i;
|
|
|
|
|
real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1];
|
|
|
|
|
for(i=0;i<SSLIMIT*gr_info->maxb;i++)
|
|
|
|
|
*in0++ = *in1++;
|
|
|
|
|
}
|
|
|
|
|