private void hybrid(int ch, int gr)
{
int bt;
int sb18;
gr_info_s gr_info = (si.ch[ch].gr[gr]);
float[] tsOut;
float[][] prvblk;
for (sb18 = 0; sb18 < 576; sb18 += 18)
{
bt = ((gr_info.window_switching_flag != 0) && (gr_info.mixed_block_flag != 0) && (sb18 < 36))?0:gr_info.block_type;
tsOut = out_1d;
// Modif E.B 02/22/99
for (int cc = 0; cc < 18; cc++)
tsOutCopy[cc] = tsOut[cc + sb18];
inv_mdct(tsOutCopy, rawout, bt);
for (int cc = 0; cc < 18; cc++)
tsOut[cc + sb18] = tsOutCopy[cc];
// Fin Modif
// overlap addition
prvblk = prevblck;
tsOut[0 + sb18] = rawout[0] + prvblk[ch][sb18 + 0];
prvblk[ch][sb18 + 0] = rawout[18];
tsOut[1 + sb18] = rawout[1] + prvblk[ch][sb18 + 1];
prvblk[ch][sb18 + 1] = rawout[19];
tsOut[2 + sb18] = rawout[2] + prvblk[ch][sb18 + 2];
prvblk[ch][sb18 + 2] = rawout[20];
tsOut[3 + sb18] = rawout[3] + prvblk[ch][sb18 + 3];
prvblk[ch][sb18 + 3] = rawout[21];
tsOut[4 + sb18] = rawout[4] + prvblk[ch][sb18 + 4];
prvblk[ch][sb18 + 4] = rawout[22];
tsOut[5 + sb18] = rawout[5] + prvblk[ch][sb18 + 5];
prvblk[ch][sb18 + 5] = rawout[23];
tsOut[6 + sb18] = rawout[6] + prvblk[ch][sb18 + 6];
prvblk[ch][sb18 + 6] = rawout[24];
tsOut[7 + sb18] = rawout[7] + prvblk[ch][sb18 + 7];
prvblk[ch][sb18 + 7] = rawout[25];
tsOut[8 + sb18] = rawout[8] + prvblk[ch][sb18 + 8];
prvblk[ch][sb18 + 8] = rawout[26];
tsOut[9 + sb18] = rawout[9] + prvblk[ch][sb18 + 9];
prvblk[ch][sb18 + 9] = rawout[27];
tsOut[10 + sb18] = rawout[10] + prvblk[ch][sb18 + 10];
prvblk[ch][sb18 + 10] = rawout[28];
tsOut[11 + sb18] = rawout[11] + prvblk[ch][sb18 + 11];
prvblk[ch][sb18 + 11] = rawout[29];
tsOut[12 + sb18] = rawout[12] + prvblk[ch][sb18 + 12];
prvblk[ch][sb18 + 12] = rawout[30];
tsOut[13 + sb18] = rawout[13] + prvblk[ch][sb18 + 13];
prvblk[ch][sb18 + 13] = rawout[31];
tsOut[14 + sb18] = rawout[14] + prvblk[ch][sb18 + 14];
prvblk[ch][sb18 + 14] = rawout[32];
tsOut[15 + sb18] = rawout[15] + prvblk[ch][sb18 + 15];
prvblk[ch][sb18 + 15] = rawout[33];
tsOut[16 + sb18] = rawout[16] + prvblk[ch][sb18 + 16];
prvblk[ch][sb18 + 16] = rawout[34];
tsOut[17 + sb18] = rawout[17] + prvblk[ch][sb18 + 17];
prvblk[ch][sb18 + 17] = rawout[35];
}
}