222{
223 (void)mixFlag;
227 int32_t isf, sfIdx, tmp, il[23];
229 int32_t cbStartL, cbStartS, cbEndL, cbEndS;
230
232 mOutL = mOutR = 0;
233
234
235 for (k = r = 0; r < 4; r++) {
236 tmp = (1 << sfjs->
slen[r]) - 1;
237 for (j = 0; j < sfjs->
nr[r]; j++, k++)
238 il[k] = tmp;
239 }
240
241 if (cbi[1].cbType == 0) {
242
243 il[21] = il[22] = 1;
244 cbStartL = cbi[1].
cbEndL + 1;
245 cbEndL = cbi[0].
cbEndL + 1;
247 sampsLeft = nSamps - i;
248
249 for(cb = cbStartL; cb < cbEndL; cb++) {
251 if (sfIdx == il[cb]) {
253 fr =
ISFIIP[midSideFlag][1];
254 } else {
255 isf = (sfis->
l[cb] + 1) >> 1;
256 fl = isfTab[(sfIdx & 0x01 ? isf : 0)];
257 fr = isfTab[(sfIdx & 0x01 ? 0 : isf)];
258 }
260
261 for(j = 0; j < n; j++, i++) {
264 }
265
266
267 sampsLeft -= n;
268 if (sampsLeft == 0)
269 break;
270 }
271 } else {
272
273 il[12] = 1;
274
275 for(w = 0; w < 3; w++) {
276 cbStartS = cbi[1].
cbEndS[w] + 1;
277 cbEndS = cbi[0].
cbEndS[w] + 1;
278 i = 3 * fh->
sfBand->
s[cbStartS] + w;
279
280
281 for(cb = cbStartS; cb < cbEndS; cb++) {
282 sfIdx = sfis->
s[cb][w];
283 if (sfIdx == il[cb]) {
285 fr =
ISFIIP[midSideFlag][1];
286 } else {
287 isf = (sfis->
s[cb][w] + 1) >> 1;
288 fl = isfTab[(sfIdx & 0x01 ? isf : 0)];
289 fr = isfTab[(sfIdx & 0x01 ? 0 : isf)];
290 }
292
293 for(j = 0; j < n; j++, i+=3) {
296 }
297 }
298 }
299 }
300 mOut[0] = mOutL;
301 mOut[1] = mOutR;
302
303 return;
304}
const int32_t ISFIIP[2][2]
__inline int32_t MULSHIFT32(int32_t x, int32_t y) FL_NOEXCEPT
Multiply together two 32-bit numbers and return the top 32-bits of the result.
__inline int32_t FASTABS(int32_t x) FL_NOEXCEPT
Absolute value of x.
const int32_t ISFMpeg2[2][2][16]
const SFBandTable * sfBand
Base definition for an LED controller.