void _vorbis_apply_window(ogg_int32_t *d,const void *window_p[2], long *blocksizes, int lW,int W,int nW){ LOOKUP_T *window[2]; long n=blocksizes[W]; long ln=blocksizes[lW]; long rn=blocksizes[nW]; long leftbegin=n/4-ln/4; long leftend=leftbegin+ln/2; long rightbegin=n/2+n/4-rn/4; long rightend=rightbegin+rn/2; int i,p; window[0]=(LOOKUP_T*)(window_p[0]); window[1]=(LOOKUP_T*)(window_p[1]); for(i=0;i<leftbegin;i++) d[i]=0; for(p=0;i<leftend;i++,p++) d[i]=MULT31(d[i],window[lW][p]); for(i=rightbegin,p=rn/2-1;i<rightend;i++,p--) d[i]=MULT31(d[i],window[nW][p]); for(;i<n;i++) d[i]=0; }
static inline void TRANSFORM_EQUAL(FFTComplex * z, unsigned int n) { register FFTSample t1,t2,t5,t6,temp1,temp2; register FFTSample * my_z = (FFTSample *)(z); my_z += n*4; t2 = MULT31(my_z[0], cPI2_8); temp1 = MULT31(my_z[1], cPI2_8); my_z += n*2; temp2 = MULT31(my_z[0], cPI2_8); t5 = MULT31(my_z[1], cPI2_8); t1 = ( temp1 + t2 ); t2 = ( temp1 - t2 ); t6 = ( temp2 + t5 ); t5 = ( temp2 - t5 ); my_z -= n*6; BUTTERFLIES(z[0],z[n],z[n*2],z[n*3]); }