rendered paste bodyint VAGdecodebuffer(unsigned char * input, short * out, short * hist1p, short * hist2p) {
int predict_nr, shift_factor, flags;
short hist1=*hist1p, hist2=*hist2p;
int sample;
int s;
int i;
predict_nr = input[0] >> 4;
shift_factor = input[0] & 0xf;
flags = input[1];
for (i=0;i<28;i+=2) {
s = (short)((input[i/2+2]&0xf)<<12)-1; //+2;
sample=((s >> shift_factor)+hist1*VAG_f[predict_nr][0]+hist2*VAG_f[predict_nr][1]+0.5);
if (sample >= 32767)
sample = 32767;
else if (sample <= -32768)
sample = -32768;
out[i]=sample;
hist2=hist1;
hist1=sample;
s = (short)((input[i/2+2]>>4)<<12)-1; //+2;
sample=((s >> shift_factor)+hist1*VAG_f[predict_nr][0]+hist2*VAG_f[predict_nr][1]+0.5);
if (sample >= 32767)
sample = 32767;
else if (sample <= -32768)
sample = -32768;
out[i+1]=sample;
hist2=hist1;
hist1=sample;
}
*hist1p=hist1;
*hist2p=hist2;
return 0;
}