📄 mpegimdc.i
字号:
extern float log2f ( float xx );extern float logf ( float xx );extern int mtherr ( char *name, int code );extern float nbdtrcf ( int k, int n, float pp );extern float nbdtrf ( int k, int n, float pp );extern float ndtrf ( float aa );extern float ndtrif ( float yy0 );extern float onef2f ( float aa, float bb, float cc, float xx, float *err );extern float p1evlf ( float xx, float *coef, int N );extern float pdtrcf ( int k, float mm );extern float pdtrf ( int k, float mm );extern float pdtrif ( int k, float yy );extern void poladdf ( float a[], int na, float b[], int nb, float c[] );extern void polclrf ( float *a, int n );extern int poldivf ( float a[], int na, float b[], int nb, float c[] );extern float polevaf ( float *a, int na, float xx );extern float polevlf ( float xx, float *coef, int N );extern void polinif ( int maxdeg );extern void polmovf ( float *a, int na, float *b );extern void polmulf ( float a[], int na, float b[], int nb, float c[] );extern void polprtf ( float *a, int na, int d );extern void polsbtf ( float a[], int na, float b[], int nb, float c[] );extern void polsubf ( float a[], int na, float b[], int nb, float c[] );extern float powf ( float x, float y );extern float powif ( float x, int nn );extern float psif ( float xx );extern float redupif ( float xx );extern float rgammaf ( float xx );extern int shichif ( float xx, float *si, float *ci );extern int sicif ( float xx, float *si, float *ci );extern float sindgf ( float xx );extern float sinf ( float xx );extern float sinhf ( float xx );extern float spencef ( float xx );extern int sprec ( void );extern float sqrtf ( float xx );extern float stdtrf ( int k, float tt );extern float struvef ( float vv, float xx );extern float tandgf ( float x );extern float tanf ( float x );extern float tanhf ( float xx );extern float threef0f ( float aa, float bb, float cc, float xx, float *err );extern float y0f ( float xx );extern float y1f ( float xx );extern float ynf ( int nn, float xx );extern float yvf ( float vv, float xx );extern float zetacf ( float xx );extern float zetaf ( float xx, float qq );# 452 "/home/gerg/new-wave.5249/lib/libc/include/machine/__math.h" 2 # 1 "/home/gerg/new-wave.5249/lib/libc/include/math.h" 2# 31 "mpegimdc.c" 2# 1 "imdct.h" 1 static short win[2][4][36] ={ { { 714, 2138, 3546, 4926, 6269, 7565, 8803, 9973, 11068, 12079, 12998, 13818, 14532, 15136, 15625, 15995, 16243, 16368, 16368, 16243, 15995, 15625, 15136, 14532, 13818, 12998, 12079, 11068, 9973, 8803, 7565, 6269, 4926, 3546, 2138, 714 }, { 714, 2138, 3546, 4926, 6269, 7565, 8803, 9973, 11068, 12079, 12998, 13818, 14532, 15136, 15625, 15995, 16243, 16368, 16384, 16384, 16384, 16384, 16384, 16384, 16243, 15136, 12998, 9973, 6269, 2138, 0, 0, 0, 0, 0, 0 }, { 2138, 6269, 9973, 12998, 15136, 16243, 16243, 15136, 12998, 9973, 6269, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 2138, 6269, 9973, 12998, 15136, 16243, 16384, 16384, 16384, 16384, 16384, 16384, 16368, 16243, 15995, 15625, 15136, 14532, 13818, 12998, 12079, 11068, 9973, 8803, 7565, 6269, 4926, 3546, 2138, 714 }, }, { { 714, -2138, 3546, -4926, 6269, -7565, 8803, -9973, 11068, -12079, 12998, -13818, 14532, -15136, 15625, -15995, 16243, -16368, 16368, -16243, 15995, -15625, 15136, -14532, 13818, -12998, 12079, -11068, 9973, -8803, 7565, -6269, 4926, -3546, 2138, -714 }, { 714, -2138, 3546, -4926, 6269, -7565, 8803, -9973, 11068, -12079, 12998, -13818, 14532, -15136, 15625, -15995, 16243, -16368, 16384, -16384, 16384, -16384, 16384, -16384, 16243, -15136, 12998, -9973, 6269, -2138, 0, 0, 0, 0, 0, 0 }, { 2138, -6269, 9973, -12998, 15136, -16243, 16243, -15136, 12998, -9973, 6269, -2138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 2138, -6269, 9973, -12998, 15136, -16243, 16384, -16384, 16384, -16384, 16384, -16384, 16368, -16243, 15995, -15625, 15136, -14532, 13818, -12998, 12079, -11068, 9973, -8803, 7565, -6269, 4926, -3546, 2138, -714 }, }}; # 36 "mpegimdc.c" 2 # 553 "mpegimdc.c" static int imdct_l(INT16 *x, INT16 *out, INT16 *prev, INT16 *win){ static const INT32 K0 = 0.9990482216 * (1 << 14 ); static const INT32 K1 = 0.9914448614 * (1 << 14 ); static const INT32 K2 = 0.9762960071 * (1 << 14 ); static const INT32 K3 = 0.9537169507 * (1 << 14 ); static const INT32 K4 = 0.9238795325 * (1 << 14 ); static const INT32 K5 = 0.8870108332 * (1 << 14 ); static const INT32 K6 = 0.8433914458 * (1 << 14 ); static const INT32 K7 = 0.7933533403 * (1 << 14 ); static const INT32 K8 = 0.7372773368 * (1 << 14 ); static const INT32 K9 = 0.6755902076 * (1 << 14 ); static const INT32 K10 = 0.6087614290 * (1 << 14 ); static const INT32 K11 = 0.5372996083 * (1 << 14 ); static const INT32 K12 = 0.4617486132 * (1 << 14 ); static const INT32 K13 = 0.3826834324 * (1 << 14 ); static const INT32 K14 = 0.3007057995 * (1 << 14 ); static const INT32 K15 = 0.2164396139 * (1 << 14 ); static const INT32 K16 = 0.1305261922 * (1 << 14 ); static const INT32 K17 = 0.04361938737 * (1 << 14 ); INT32 k1, k2; INT32 s[6]; INT32 t[6]; INT32 temp; INT16 i; k1 = (x[ 4 ] * ( K13 )) - (x[ 13 ] * ( K4 )) ; k2 = (x[ 4 ] * ( K4 )) + (x[ 13 ] * ( K13 )) ; s[0] = - (x[ 1 ] * ( K7 )) + k1 + (x[ 7 ] * ( K1 )) + (x[ 10 ] * ( K16 )) - (x[ 16 ] * ( K10 )) ; s[1] = - (x[ 1 ] * ( K4 )) - k1 + (x[ 7 ] * ( K13 )) + (x[ 10 ] * ( K4 )) + (x[ 16 ] * ( K13 )) ; s[2] = - (x[ 1 ] * ( K1 )) - k2 - (x[ 7 ] * ( K7 )) - (x[ 10 ] * ( K10 )) - (x[ 16 ] * ( K16 )) ; s[3] = - (x[ 1 ] * ( K10 )) + k2 + (x[ 7 ] * ( K16 )) - (x[ 10 ] * ( K1 )) + (x[ 16 ] * ( K7 )) ; s[4] = - (x[ 1 ] * ( K13 )) + k2 - (x[ 7 ] * ( K4 )) + (x[ 10 ] * ( K13 )) - (x[ 16 ] * ( K4 )) ; s[5] = - (x[ 1 ] * ( K16 )) + k1 - (x[ 7 ] * ( K10 )) + (x[ 10 ] * ( K7 )) + (x[ 16 ] * ( K1 )) ; t[0] = (INT32)x[ 0 ] - (INT32)x[11- 0 ] - (INT32)x[12+ 0 ] ; t[1] = (INT32)x[ 2 ] - (INT32)x[11- 2 ] - (INT32)x[12+ 2 ] ; t[2] = (INT32)x[ 3 ] - (INT32)x[11- 3 ] - (INT32)x[12+ 3 ] ; t[3] = (INT32)x[ 5 ] - (INT32)x[11- 5 ] - (INT32)x[12+ 5 ] ; temp = (x[ 0 ] * ( K9 )) - (x[ 2 ] * ( K11 )) + (x[ 3 ] * ( K5 )) - (x[ 5 ] * ( K3 )) - (x[ 6 ] * ( K15 )) + (x[ 8 ] * ( K17 )) - (x[ 9 ] * ( K0 )) + (x[ 11 ] * ( K2 )) - (x[ 12 ] * ( K14 )) + (x[ 14 ] * ( K12 )) + (x[ 15 ] * ( K6 )) - (x[ 17 ] * ( K8 )) ; temp += s[0]; out[ 0 *32] = prev[0] + ((( ( temp >> 14 ) ) * ( win[ 0 ] ))>> 14 ) ; out[ 17 *32] = prev[17] - ((( ( temp >> 14 ) ) * ( win[ 17 ] ))>> 14 ) ; temp = (t[ 0 ] * ( K10 )) - (t[ 1 ] * ( K16 )) + (t[ 2 ] * ( K1 )) - (t[ 3 ] * ( K7 )) + s[1]; out[ 1 *32] = prev[1] + ((( ( temp >> 14 ) ) * ( win[ 1 ] ))>> 14 ) ; out[ 16 *32] = prev[16] - ((( ( temp >> 14 ) ) * ( win[ 16 ] ))>> 14 ) ; temp = (x[ 0 ] * ( K11 )) + (x[ 2 ] * ( K14 )) + (x[ 3 ] * ( K8 )) + (x[ 5 ] * ( K17 )) + (x[ 6 ] * ( K5 )) - (x[ 8 ] * ( K15 )) + (x[ 9 ] * ( K2 )) - (x[ 11 ] * ( K12 )) + (x[ 12 ] * ( K0 )) - (x[ 14 ] * ( K9 )) + (x[ 15 ] * ( K3 )) - (x[ 17 ] * ( K6 )) ; temp += s[2]; out[ 2 *32] = prev[2] + ((( ( temp >> 14 ) ) * ( win[ 2 ] ))>> 14 ) ; out[ 15 *32] = prev[15] - ((( ( temp >> 14 ) ) * ( win[ 15 ] ))>> 14 ) ; temp = (x[ 0 ] * ( K12 )) + (x[ 2 ] * ( K9 )) + (x[ 3 ] * ( K15 )) + (x[ 5 ] * ( K6 )) - (x[ 6 ] * ( K17 )) + (x[ 8 ] * ( K3 )) - (x[ 9 ] * ( K14 )) + (x[ 11 ] * ( K0 )) - (x[ 12 ] * ( K11 )) + (x[ 14 ] * ( K2 )) - (x[ 15 ] * ( K8 )) + (x[ 17 ] * ( K5 )) ; temp += s[2]; out[ 3 *32] = prev[3] + ((( ( temp >> 14 ) ) * ( win[ 3 ] ))>> 14 ) ; out[ 14 *32] = prev[14] - ((( ( temp >> 14 ) ) * ( win[ 14 ] ))>> 14 ) ; temp = (t[ 0 ] * ( K13 )) + (t[ 1 ] * ( K4 )) - (t[ 2 ] * ( K13 )) + (t[ 3 ] * ( K4 )) + s[1]; out[ 4 *32] = prev[4] + ((( ( temp >> 14 ) ) * ( win[ 4 ] ))>> 14 ) ; out[ 13 *32] = prev[13] - ((( ( temp >> 14 ) ) * ( win[ 13 ] ))>> 14 ) ; temp = (x[ 0 ] * ( K14 )) + (x[ 2 ] * ( K0 )) - (x[ 3 ] * ( K6 )) + (x[ 5 ] * ( K15 )) - (x[ 6 ] * ( K8 )) - (x[ 8 ] * ( K5 )) + (x[ 9 ] * ( K12 )) - (x[ 11 ] * ( K9 )) + (x[ 12 ] * ( K2 )) + (x[ 14 ] * ( K11 )) + (x[ 15 ] * ( K17 )) + (x[ 17 ] * ( K3 )) ; temp += s[0]; out[ 5 *32] = prev[5] + ((( ( temp >> 14 ) ) * ( win[ 5 ] ))>> 14 ) ; out[ 12 *32] = prev[12] - ((( ( temp >> 14 ) ) * ( win[ 12 ] ))>> 14 ) ; temp = (x[ 0 ] * ( K15 )) + (x[ 2 ] * ( K5 )) - (x[ 3 ] * ( K0 )) - (x[ 5 ] * ( K9 )) + (x[ 6 ] * ( K14 )) - (x[ 8 ] * ( K11 )) + (x[ 9 ] * ( K6 )) + (x[ 11 ] * ( K3 )) - (x[ 12 ] * ( K8 )) + (x[ 14 ] * ( K17 )) - (x[ 15 ] * ( K12 )) - (x[ 17 ] * ( K2 )) ; temp += s[3]; out[ 6 *32] = prev[6] + ((( ( temp >> 14 ) ) * ( win[ 6 ] ))>> 14 ) ; out[ 11 *32] = prev[11] - ((( ( temp >> 14 ) ) * ( win[ 11 ] ))>> 14 ) ; temp = (t[ 0 ] * ( K16 )) + (t[ 1 ] * ( K10 )) - (t[ 2 ] * ( K7 )) - (t[ 3 ] * ( K1 )) + s[4]; out[ 7 *32] = prev[7] + ((( ( temp >> 14 ) ) * ( win[ 7 ] ))>> 14 ) ; out[ 10 *32] = prev[10] - ((( ( temp >> 14 ) ) * ( win[ 10 ] ))>> 14 ) ; temp = (x[ 0 ] * ( K17 )) + (x[ 2 ] * ( K15 )) - (x[ 3 ] * ( K14 )) - (x[ 5 ] * ( K12 )) + (x[ 6 ] * ( K11 )) + (x[ 8 ] * ( K9 )) - (x[ 9 ] * ( K8 )) - (x[ 11 ] * ( K6 )) + (x[ 12 ] * ( K5 )) + (x[ 14 ] * ( K3 )) - (x[ 15 ] * ( K2 )) - (x[ 17 ] * ( K0 )) ; temp += s[5]; out[ 8 *32] = prev[8] + ((( ( temp >> 14 ) ) * ( win[ 8 ] ))>> 14 ) ; out[ 9 *32] = prev[9] - ((( ( temp >> 14 ) ) * ( win[ 9 ] ))>> 14 ) ; temp = - (x[ 0 ] * ( K8 )) + (x[ 2 ] * ( K6 )) - (x[ 3 ] * ( K12 )) + (x[ 5 ] * ( K14 )) + (x[ 6 ] * ( K2 )) - (x[ 8 ] * ( K0 )) - (x[ 9 ] * ( K17 )) + (x[ 11 ] * ( K15 )) - (x[ 12 ] * ( K3 )) + (x[ 14 ] * ( K5 )) + (x[ 15 ] * ( K11 )) - (x[ 17 ] * ( K9 )) ; temp -= s[3]; prev[0] = ((( ( temp >> 14 ) ) * ( win[ 18 ] ))>> 14 ) ; prev[17] = ((( ( temp >> 14 ) ) * ( win[ 35 ] ))>> 14 ) ; temp = - (t[ 0 ] * ( K7 )) + (t[ 1 ] * ( K1 )) + (t[ 2 ] * ( K16 )) - (t[ 3 ] * ( K10 )) - s[4]; prev[1] = ((( ( temp >> 14 ) ) * ( win[ 19 ] ))>> 14 ) ; prev[16] = ((( ( temp >> 14 ) ) * ( win[ 34 ] ))>> 14 ) ; temp = - (x[ 0 ] * ( K6 )) + (x[ 2 ] * ( K3 )) + (x[ 3 ] * ( K9 )) - (x[ 5 ] * ( K0 )) - (x[ 6 ] * ( K12 )) + (x[ 8 ] * ( K2 )) + (x[ 9 ] * ( K15 )) - (x[ 11 ] * ( K5 )) + (x[ 12 ] * ( K17 )) + (x[ 14 ] * ( K8 )) - (x[ 15 ] * ( K14 )) - (x[ 17 ] * ( K11 )) ; temp -= s[5]; prev[2] = ((( ( temp >> 14 ) ) * ( win[ 20 ] ))>> 14 ) ; prev[15] = ((( ( temp >> 14 ) ) * ( win[ 33 ] ))>> 14 ) ; temp = - (x[ 0 ] * ( K5 )) + (x[ 2 ] * ( K8 )) + (x[ 3 ] * ( K2 )) - (x[ 5 ] * ( K11 )) - (x[ 6 ] * ( K0 )) + (x[ 8 ] * ( K14 )) + (x[ 9 ] * ( K3 )) - (x[ 11 ] * ( K17 )) - (x[ 12 ] * ( K6 )) - (x[ 14 ] * ( K15 )) + (x[ 15 ] * ( K9 )) + (x[ 17 ] * ( K12 )) ; temp += s[5]; prev[3] = ((( ( temp >> 14 ) ) * ( win[ 21 ] ))>> 14 ) ; prev[14] = ((( ( temp >> 14 ) ) * ( win[ 32 ] ))>> 14 ) ; temp = - (t[ 0 ] * ( K4 )) + (t[ 1 ] * ( K13 )) + (t[ 2 ] * ( K4 )) + (t[ 3 ] * ( K13 )) + s[4]; prev[4] = ((( ( temp >> 14 ) ) * ( win[ 22 ] ))>> 14 ) ; prev[13] = ((( ( temp >> 14 ) ) * ( win[ 31 ] ))>> 14 ) ; temp = - (x[ 0 ] * ( K3 )) - (x[ 2 ] * ( K17 )) + (x[ 3 ] * ( K11 )) + (x[ 5 ] * ( K2 )) + (x[ 6 ] * ( K9 )) - (x[ 8 ] * ( K12 )) - (x[ 9 ] * ( K5 )) - (x[ 11 ] * ( K8 )) - (x[ 12 ] * ( K15 )) + (x[ 14 ] * ( K6 )) + (x[ 15 ] * ( K0 )) + (x[ 17 ] * ( K14 )) ; temp += s[3]; prev[5] = ((( ( temp >> 14 ) ) * ( win[ 23 ] ))>> 14 ) ; prev[12] = ((( ( temp >> 14 ) ) * ( win[ 30 ] ))>> 14 ) ; temp = - (x[ 0 ] * ( K2 )) - (x[ 2 ] * ( K12 )) - (x[ 3 ] * ( K17 )) + (x[ 5 ] * ( K8 )) + (x[ 6 ] * ( K3 )) + (x[ 8 ] * ( K6 )) + (x[ 9 ] * ( K11 )) - (x[ 11 ] * ( K14 )) - (x[ 12 ] * ( K9 )) - (x[ 14 ] * ( K0 )) - (x[ 15 ] * ( K5 )) - (x[ 17 ] * ( K15 )) ; temp += s[0]; prev[6] = ((( ( temp >> 14 ) ) * ( win[ 24 ] ))>> 14 ) ; prev[11] = ((( ( temp >> 14 ) ) * ( win[ 29 ] ))>> 14 ) ; temp = - (t[ 0 ] * ( K1 )) - (t[ 1 ] * ( K7 )) - (t[ 2 ] * ( K10 )) - (t[ 3 ] * ( K16 )) + s[1]; prev[7] = ((( ( temp >> 14 ) ) * ( win[ 25 ] ))>> 14 ) ; prev[10] = ((( ( temp >> 14 ) ) * ( win[ 28 ] ))>> 14 ) ; temp = - (x[ 0 ] * ( K0 )) - (x[ 2 ] * ( K2 )) - (x[ 3 ] * ( K3 )) - (x[ 5 ] * ( K5 )) - (x[ 6 ] * ( K6 )) - (x[ 8 ] * ( K8 )) - (x[ 9 ] * ( K9 )) - (x[ 11 ] * ( K11 )) - (x[ 12 ] * ( K12 )) - (x[ 14 ] * ( K14 )) - (x[ 15 ] * ( K15 )) - (x[ 17 ] * ( K17 )) ; temp += s[2]; prev[8] = ((( ( temp >> 14 ) ) * ( win[ 26 ] ))>> 14 ) ; prev[9] = ((( ( temp >> 14 ) ) * ( win[ 27 ] ))>> 14 ) ; return(0);} static int imdct_s(INT16 *x, INT16 *out, INT16 *prev, INT16 *win){ static const INT32 K0 = 0.9914448614 * (1 << 14 ); static const INT32 K1 = 0.9238795325 * (1 << 14 ); static const INT32 K2 = 0.7933533403 * (1 << 14 ); static const INT32 K3 = 0.6087614290 * (1 << 14 ); static const INT32 K4 = 0.3826834324 * (1 << 14 ); static const INT32 K5 = 0.1305261922 * (1 << 14 ); INT32 s[2]; INT32 t[2]; INT32 temp; INT16 i; out[ 0 *32] = prev[0]; out[ 1 *32] = prev[1]; out[ 2 *32] = prev[2]; out[ 3 *32] = prev[3]; out[ 4 *32] = prev[4]; out[ 5 *32] = prev[5]; s[0] = ((INT32)x[( 1 *3)] * ( K1 )) + ((INT32)x[( 4 *3)] * ( K4 )) ; s[1] = ((INT32)x[( 1 *3)] * ( K4 )) - ((INT32)x[( 4 *3)] * ( K1 )) ; t[0] = x[0 * 3] - x[3 * 3]; t[1] = x[2 * 3] + x[5 * 3]; temp = ((INT32)x[( 0 *3)] * ( K3 )) - ((INT32)x[( 2 *3)] * ( K5 )) + ((INT32)x[( 3 *3)] * ( K0 )) - ((INT32)x[( 5 *3)] * ( K2 )) - s[0]; out[ 6 *32] = prev[6] + ((( ( temp >> 14 ) ) * ( win[ 0 ] ))>> 14 ) ; out[ 11 *32] = prev[11] - ((( ( temp >> 14 ) ) * ( win[ 5 ] ))>> 14 ) ; temp = (t[ 0 ] * ( K4 )) + (t[ 1 ] * ( K1 )) - s[0]; out[ 7 *32] = prev[7] + ((( ( temp >> 14 ) ) * ( win[ 1 ] ))>> 14 ) ; out[ 10 *32] = prev[10] - ((( ( temp >> 14 ) ) * ( win[ 4 ] ))>> 14 ) ; temp = ((INT32)x[( 0 *3)] * ( K5 )) + ((INT32)x[( 2 *3)] * ( K3 )) - ((INT32)x[( 3 *3)] * ( K2 )) - ((INT32)x[( 5 *3)] * ( K0 )) - s[1]; out[ 8 *32] = prev[8] + ((( ( temp >> 14 ) ) * ( win[ 2 ] ))>> 14 ) ; out[ 9 *32] = prev[9] - ((( ( temp >> 14 ) ) * ( win[ 3 ] ))>> 14 ) ; temp = - ((INT32)x[( 0 *3)] * ( K2 )) + ((INT32)x[( 2 *3)] * ( K0 )) + ((INT32)x[( 3 *3)] * ( K5 )) - ((INT32)x[( 5 *3)] * ( K3 )) + s[1]; out[ 12 *32] = ((( ( temp >> 14 ) ) * ( win[ 6 ] ))>> 14 ) ; out[ 17 *32] = ((( ( temp >> 14 ) ) * ( win[ 11 ] ))>> 14 ) ; temp = - (t[ 0 ] * ( K1 )) + (t[ 1 ] * ( K4 )) - s[1]; out[ 13 *32] = ((( ( temp >> 14 ) ) * ( win[ 7 ] ))>> 14 ) ; out[ 16 *32] = ((( ( temp >> 14 ) ) * ( win[ 10 ] ))>> 14 ) ; temp = - ((INT32)x[( 0 *3)] * ( K0 )) - ((INT32)x[( 2 *3)] * ( K2 )) - ((INT32)x[( 3 *3)] * ( K3 )) - ((INT32)x[( 5 *3)] * ( K5 )) - s[0]; out[ 14 *32] = ((( ( temp >> 14 ) ) * ( win[ 8 ] ))>> 14 ) ; out[ 15 *32] = ((( ( temp >> 14 ) ) * ( win[ 9 ] ))>> 14 ) ; x++; s[0] = ((INT32)x[( 1 *3)] * ( K1 )) + ((INT32)x[( 4 *3)] * ( K4 )) ; s[1] = ((INT32)x[( 1 *3)] * ( K4 )) - ((INT32)x[( 4 *3)] * ( K1 )) ; t[0] = x[0 * 3] - x[3 * 3]; t[1] = x[2 * 3] + x[5 * 3]; temp = ((INT32)x[( 0 *3)] * ( K3 )) - ((INT32)x[( 2 *3)] * ( K5 )) + ((INT32)x[( 3 *3)] * ( K0 )) - ((INT32)x[( 5 *3)] * ( K2 )) - s[0]; out[ 12 *32] += ((( ( temp >> 14 ) ) * ( win[ 0 ] ))>> 14 ) ; out[ 17 *32] += - ((( ( temp >> 14 ) ) * ( win[ 5 ] ))>> 14 ) ; temp = (t[ 0 ] * ( K4 )) + (t[ 1 ] * ( K1 )) - s[0]; out[ 13 *32] += ((( ( temp >> 14 ) ) * ( win[ 1 ] ))>> 14 ) ; out[ 16 *32] += - ((( ( temp >> 14 ) ) * ( win[ 4 ] ))>> 14 ) ; temp = ((INT32)x[( 0 *3)] * ( K5 )) + ((INT32)x[( 2 *3)] * ( K3 )) - ((INT32)x[( 3 *3)] * ( K2 )) - ((INT32)x[( 5 *3)] * ( K0 )) - s[1]; out[ 14 *32] += ((( ( temp >> 14 ) ) * ( win[ 2 ] ))>> 14 ) ; out[ 15 *32] += - ((( ( temp >> 14 ) ) * ( win[ 3 ] ))>> 14 ) ; temp = - ((INT32)x[( 0 *3)] * ( K2 )) + ((INT32)x[( 2 *3)] * ( K0 )) + ((INT32)x[( 3 *3)] * ( K5 )) - ((INT32)x[( 5 *3)] * ( K3 )) + s[1]; prev[0] = ((( ( temp >> 14 ) ) * ( win[ 6 ] ))>> 14 ) ; prev[5] = ((( ( temp >> 14 ) ) * ( win[ 11 ] ))>> 14 ) ; temp = - (t[ 0 ] * ( K1 )) + (t[ 1 ] * ( K4 )) - s[1]; prev[1] = ((( ( temp >> 14 ) ) * ( win[ 7 ] ))>> 14 ) ; prev[4] = ((( ( temp >> 14 ) ) * ( win[ 10 ] ))>> 14 ) ; temp = - ((INT32)x[( 0 *3)] * ( K0 )) - ((INT32)x[( 2 *3)] * ( K2 )) - ((INT32)x[( 3 *3)] * ( K3 )) - ((INT32)x[( 5 *3)] * ( K5 )) - s[0]; prev[2] = ((( ( temp >> 14 ) ) * ( win[ 8 ] ))>> 14 ) ; prev[3] = ((( ( temp >> 14 ) ) * ( win[ 9 ] ))>> 14 ) ; x++; s[0] = ((INT32)x[( 1 *3)] * ( K1 )) + ((INT32)x[( 4 *3)] * ( K4 )) ; s[1] = ((INT32)x[( 1 *3)] * ( K4 )) - ((INT32)x[( 4 *3)] * ( K1 )) ; t[0] = x[0 * 3] - x[3 * 3]; t[1] = x[2 * 3] + x[5 * 3]; temp = ((INT32)x[( 0 *3)] * ( K3 )) - ((INT32)x[( 2 *3)] * ( K5 )) + ((INT32)x[( 3 *3)] * ( K0 )) - ((INT32)x[( 5 *3)] * ( K2 )) - s[0]; prev[0] += ((( ( temp >> 14 ) ) * ( win[ 0 ] ))>> 14 ) ; prev[5] += - ((( ( temp >> 14 ) ) * ( win[ 5 ] ))>> 14 ) ; temp = (t[ 0 ] * ( K4 )) + (t[ 1 ] * ( K1 )) - s[0]; prev[1] += ((( ( temp >> 14 ) ) * ( win[ 1 ] ))>> 14 ) ; prev[4] += - ((( ( temp >> 14 ) ) * ( win[ 4 ] ))>> 14 ) ; temp = ((INT32)x[( 0 *3)] * ( K5 )) + ((INT32)x[( 2 *3)] * ( K3 )) - ((INT32)x[( 3 *3)] * ( K2 )) - ((INT32)x[( 5 *3)] * ( K0 )) - s[1]; prev[2] += ((( ( temp >> 14 ) ) * ( win[ 2 ] ))>> 14 ) ; prev[3] += - ((( ( temp >> 14 ) ) * ( win[ 3 ] ))>> 14 ) ; temp = - ((INT32)x[( 0 *3)] * ( K2 )) + ((INT32)x[( 2 *3)] * ( K0 )) + ((INT32)x[( 3 *3)] * ( K5 )) - ((INT32)x[( 5 *3)] * ( K3 )) + s[1]; prev[6] = ((( ( temp >> 14 ) ) * ( win[ 6 ] ))>> 14 ) ; prev[11] = ((( ( temp >> 14 ) ) * ( win[ 11 ] ))>> 14 ) ; temp = - (t[ 0 ] * ( K1 )) + (t[ 1 ] * ( K4 )) - s[1]; prev[7] = ((( ( temp >> 14 ) ) * ( win[ 7 ] ))>> 14 ) ; prev[10] = ((( ( temp >> 14 ) ) * ( win[ 10 ] ))>> 14 ) ; temp = - ((INT32)x[( 0 *3)] * ( K0 )) - ((INT32)x[( 2 *3)] * ( K2 )) - ((INT32)x[( 3 *3)] * ( K3 )) - ((INT32)x[( 5 *3)] * ( K5 )) - s[0]; prev[8] = ((( ( temp >> 14 ) ) * ( win[ 8 ] ))>> 14 ) ; prev[9] = ((( ( temp >> 14 ) ) * ( win[ 9 ] ))>> 14 ) ; prev[12] = prev[13] = prev[14] = prev[15] = prev[16] = prev[17] = 0; return(0);} int MPEGIMDCT_hybrid(MPEGIMDCT *mpegimdct, INT16 *in, INT16 *out, INT16 block_type, BOOL mixed, INT16 ch, INT16 sb_max){ static BOOL init = 0 ; register INT16 *prev; INT16 sb; INT16 bt; if (!init) { INT16 i, j;# 958 "mpegimdc.c"# 996 "mpegimdc.c"# 1042 "mpegimdc.c" init = 1 ; } prev = mpegimdct->prevblk[ch]; for (sb = 0; sb < sb_max; sb++) { bt = ((mixed) && (sb < 2)) ? 0 : block_type; if (bt == 2) imdct_s(in, out, prev, &win[sb & 1][bt][0]); else imdct_l(in, out, prev, &win[sb & 1][bt][0]); in += 18; out++; prev += 18; } for (; sb < 32 ; sb++) { out[ 0 *32] = *prev; *prev++ = 0; out[ 1 *32] = *prev; *prev++ = 0; out[ 2 *32] = *prev; *prev++ = 0; out[ 3 *32] = *prev; *prev++ = 0; out[ 4 *32] = *prev; *prev++ = 0; out[ 5 *32] = *prev; *prev++ = 0; out[ 6 *32] = *prev; *prev++ = 0; out[ 7 *32] = *prev; *prev++ = 0; out[ 8 *32] = *prev; *prev++ = 0; out[ 9 *32] = *prev; *prev++ = 0; out[ 10 *32] = *prev; *prev++ = 0; out[ 11 *32] = *prev; *prev++ = 0; out[ 12 *32] = *prev; *prev++ = 0; out[ 13 *32] = *prev; *prev++ = 0; out[ 14 *32] = *prev; *prev++ = 0; out[ 15 *32] = *prev; *prev++ = 0; out[ 16 *32] = *prev; *prev++ = 0; out[ 17 *32] = *prev; *prev++ = 0; out++; } return(0);} int MPEGIMDCT_reset(MPEGIMDCT *mpegimdct){ if (!mpegimdct) return(-1); memset(mpegimdct->prevblk, 0, 2 * 576 * sizeof(INT16 )); return(0);} void MPEGIMDCT_close(MPEGIMDCT *mpegimdct){ if (!mpegimdct) return; free(mpegimdct);} MPEGIMDCT *MPEGIMDCT_open(void){ MPEGIMDCT *mpegimdct; mpegimdct = (MPEGIMDCT *) malloc(sizeof(MPEGIMDCT)); if (!mpegimdct) return(0 ); MPEGIMDCT_reset(mpegimdct); return(mpegimdct);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -