109 int i=0, j=0, n=0, cb=0, w=0;
110 int sampsLeft, isf, mOutL, mOutR, xl, xr;
111 int fl, fr, fls[3], frs[3];
112 int cbStartL=0, cbStartS=0, cbEndL=0, cbEndS=0;
121 if (cbi[1].cbType == 0) {
123 cbStartL = cbi[1].
cbEndL + 1;
124 cbEndL = cbi[0].
cbEndL + 1;
125 cbStartS = cbEndS = 0;
127 }
else if (cbi[1].cbType == 1 || cbi[1].cbType == 2) {
131 cbStartL = cbEndL = 0;
132 i = 3 * fh->
sfBand->
s[cbStartS];
135 sampsLeft = nSamps - i;
136 isfTab = (
int *)
ISFMpeg1[midSideFlag];
140 for (cb = cbStartL; cb < cbEndL && sampsLeft > 0; cb++) {
143 fl =
ISFIIP[midSideFlag][0];
144 fr =
ISFIIP[midSideFlag][1];
147 fr = isfTab[6] - isfTab[isf];
151 for (j = 0; j < n && sampsLeft > 0; j++, i++) {
152 xr = MULSHIFT32(fr,
x[0][i]) << 2;
x[1][i] = xr; mOutR |= FASTABS(xr);
153 xl = MULSHIFT32(fl,
x[0][i]) << 2;
x[0][i] = xl; mOutL |= FASTABS(xl);
159 for (cb = cbStartS; cb < cbEndS && sampsLeft >= 3; cb++) {
160 for (w = 0; w < 3; w++) {
161 isf = sfis->
s[cb][w];
163 fls[w] =
ISFIIP[midSideFlag][0];
164 frs[w] =
ISFIIP[midSideFlag][1];
166 fls[w] = isfTab[isf];
167 frs[w] = isfTab[6] - isfTab[isf];
172 for (j = 0; j < n && sampsLeft >= 3; j++, i+=3) {
173 xr = MULSHIFT32(frs[0],
x[0][i+0]) << 2;
x[1][i+0] = xr; mOutR |= FASTABS(xr);
174 xl = MULSHIFT32(fls[0],
x[0][i+0]) << 2;
x[0][i+0] = xl; mOutL |= FASTABS(xl);
175 xr = MULSHIFT32(frs[1],
x[0][i+1]) << 2;
x[1][i+1] = xr; mOutR |= FASTABS(xr);
176 xl = MULSHIFT32(fls[1],
x[0][i+1]) << 2;
x[0][i+1] = xl; mOutL |= FASTABS(xl);
177 xr = MULSHIFT32(frs[2],
x[0][i+2]) << 2;
x[1][i+2] = xr; mOutR |= FASTABS(xr);
178 xl = MULSHIFT32(fls[2],
x[0][i+2]) << 2;
x[0][i+2] = xl; mOutL |= FASTABS(xl);
215 int i, j, k, n, r, cb, w;
216 int fl, fr, mOutL, mOutR, xl, xr;
218 int isf, sfIdx, tmp, il[23];
220 int cbStartL, cbStartS, cbEndL, cbEndS;
226 for (k = r = 0; r < 4; r++) {
227 tmp = (1 << sfjs->
slen[r]) - 1;
228 for (j = 0; j < sfjs->
nr[r]; j++, k++)
232 if (cbi[1].cbType == 0) {
235 cbStartL = cbi[1].
cbEndL + 1;
236 cbEndL = cbi[0].
cbEndL + 1;
238 sampsLeft = nSamps - i;
240 for(cb = cbStartL; cb < cbEndL; cb++) {
242 if (sfIdx == il[cb]) {
243 fl =
ISFIIP[midSideFlag][0];
244 fr =
ISFIIP[midSideFlag][1];
246 isf = (sfis->
l[cb] + 1) >> 1;
247 fl = isfTab[(sfIdx & 0x01 ? isf : 0)];
248 fr = isfTab[(sfIdx & 0x01 ? 0 : isf)];
252 for(j = 0; j < n; j++, i++) {
253 xr = MULSHIFT32(fr,
x[0][i]) << 2;
x[1][i] = xr; mOutR |= FASTABS(xr);
254 xl = MULSHIFT32(fl,
x[0][i]) << 2;
x[0][i] = xl; mOutL |= FASTABS(xl);
266 for(w = 0; w < 3; w++) {
267 cbStartS = cbi[1].
cbEndS[w] + 1;
268 cbEndS = cbi[0].
cbEndS[w] + 1;
269 i = 3 * fh->
sfBand->
s[cbStartS] + w;
272 for(cb = cbStartS; cb < cbEndS; cb++) {
273 sfIdx = sfis->
s[cb][w];
274 if (sfIdx == il[cb]) {
275 fl =
ISFIIP[midSideFlag][0];
276 fr =
ISFIIP[midSideFlag][1];
278 isf = (sfis->
s[cb][w] + 1) >> 1;
279 fl = isfTab[(sfIdx & 0x01 ? isf : 0)];
280 fr = isfTab[(sfIdx & 0x01 ? 0 : isf)];
284 for(j = 0; j < n; j++, i+=3) {
285 xr = MULSHIFT32(fr,
x[0][i]) << 2;
x[1][i] = xr; mOutR |= FASTABS(xr);
286 xl = MULSHIFT32(fl,
x[0][i]) << 2;
x[0][i] = xl; mOutL |= FASTABS(xl);