⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpegimdc.i

📁 mp3解码源代码
💻 I
📖 第 1 页 / 共 4 页
字号:
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 + -