MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / III_overlap

Function III_overlap

modules/data/mp3/libmad/layer3.c:2297–2340  ·  view source on GitHub ↗

NAME: III_overlap() DESCRIPTION: perform overlap-add of windowed IMDCT outputs */

Source from the content-addressed store, hash-verified

2295 DESCRIPTION: perform overlap-add of windowed IMDCT outputs
2296*/
2297static
2298void III_overlap(mad_fixed_t const output[36], mad_fixed_t overlap[18],
2299 mad_fixed_t sample[18][32], unsigned int sb)
2300{
2301 unsigned int i;
2302 stack(__FUNCTION__, __FILE__, __LINE__);
2303
2304# if defined(ASO_INTERLEAVE2)
2305 {
2306 register mad_fixed_t tmp1, tmp2;
2307
2308 tmp1 = overlap[0];
2309 tmp2 = overlap[1];
2310
2311 for (i = 0; i < 16; i += 2) {
2312 sample[i + 0][sb] = output[i + 0 + 0] + tmp1;
2313 overlap[i + 0] = output[i + 0 + 18];
2314 tmp1 = overlap[i + 2];
2315
2316 sample[i + 1][sb] = output[i + 1 + 0] + tmp2;
2317 overlap[i + 1] = output[i + 1 + 18];
2318 tmp2 = overlap[i + 3];
2319 }
2320
2321 sample[16][sb] = output[16 + 0] + tmp1;
2322 overlap[16] = output[16 + 18];
2323 sample[17][sb] = output[17 + 0] + tmp2;
2324 overlap[17] = output[17 + 18];
2325 }
2326# elif 0
2327 for (i = 0; i < 18; i += 2) {
2328 sample[i + 0][sb] = output[i + 0 + 0] + overlap[i + 0];
2329 overlap[i + 0] = output[i + 0 + 18];
2330
2331 sample[i + 1][sb] = output[i + 1 + 0] + overlap[i + 1];
2332 overlap[i + 1] = output[i + 1 + 18];
2333 }
2334# else
2335 for (i = 0; i < 18; ++i) {
2336 sample[i][sb] = output[i + 0] + overlap[i];
2337 overlap[i] = output[i + 18];
2338 }
2339# endif
2340}
2341
2342/*
2343 NAME: III_overlap_z()

Callers 1

III_decodeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected