亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? decode.c

?? VC++視頻開發(fā)實(shí)例集錦(包括“遠(yuǎn)程視頻監(jiān)控”"語音識(shí)別系統(tǒng)"等13個(gè)經(jīng)典例子)
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
                   }
                }
                i = 0;
                while ( sfBandIndex[sfreq].l[i] <= sb )
                   i++;
                sfb = i;
                i = sfBandIndex[sfreq].l[i];
                for ( ; sfb<8; sfb++ )
                {  sb = sfBandIndex[sfreq].l[sfb+1]-sfBandIndex[sfreq].l[sfb];
                   for ( ; sb > 0; sb--)
                   {  is_pos[i] = (*scalefac)[1].l[sfb];
                      if ( is_pos[i] != 7 )
                         is_ratio[i] = tan( is_pos[i] * (PI / 12));
                      i++;
                   }
                }
            }
         } else
         {  for ( j=0; j<3; j++ )
            {  int sfbcnt;
               sfbcnt = -1;
               for( sfb=12; sfb >=0; sfb-- )
               {  int lines;
                  lines = sfBandIndex[sfreq].s[sfb+1]-sfBandIndex[sfreq].s[sfb];
                  i = 3*sfBandIndex[sfreq].s[sfb] + (j+1) * lines - 1;
                  while ( lines > 0 )
                  {  if ( xr[1][i/SSLIMIT][i%SSLIMIT] != 0.0 )
                     {  sfbcnt = sfb;
                        sfb = -10;
                        lines = -10;
                     }
                     lines--;
                     i--;
                  }
               }
               sfb = sfbcnt + 1;
               while( sfb<12 )
               {  sb = sfBandIndex[sfreq].s[sfb+1]-sfBandIndex[sfreq].s[sfb];
                  i = 3*sfBandIndex[sfreq].s[sfb] + j * sb;
                  for ( ; sb > 0; sb--)
                  {  is_pos[i] = (*scalefac)[1].s[j][sfb];
                     if ( is_pos[i] != 7 )
                        is_ratio[i] = tan( is_pos[i] * (PI / 12));
                     i++;
                  }
                  sfb++;
               }

               sb = sfBandIndex[sfreq].s[11]-sfBandIndex[sfreq].s[10];
               sfb = 3*sfBandIndex[sfreq].s[10] + j * sb;
               sb = sfBandIndex[sfreq].s[12]-sfBandIndex[sfreq].s[11];
               i = 3*sfBandIndex[sfreq].s[11] + j * sb;
               for ( ; sb > 0; sb-- )
               {  is_pos[i] = is_pos[sfb];
                  is_ratio[i] = is_ratio[sfb];
                  i++;
               }
            }
         }
      } else
      {  i = 31;
         ss = 17;
         sb = 0;
         while ( i >= 0 )
         {  if ( xr[1][i][ss] != 0.0 )
            {  sb = i*18+ss;
               i = -1;
            } else
            {  ss--;
               if ( ss < 0 )
               {  i--;
                  ss = 17;
               }
            }
         }
         i = 0;
         while ( sfBandIndex[sfreq].l[i] <= sb )
            i++;
         sfb = i;
         i = sfBandIndex[sfreq].l[i];
         for ( ; sfb<21; sfb++ )
         {  sb = sfBandIndex[sfreq].l[sfb+1] - sfBandIndex[sfreq].l[sfb];
            for ( ; sb > 0; sb--)
            {  is_pos[i] = (*scalefac)[1].l[sfb];
               if ( is_pos[i] != 7 )
                  is_ratio[i] = tan( is_pos[i] * (PI / 12));
               i++;
            }
         }
         sfb = sfBandIndex[sfreq].l[20];
         for ( sb = 576 - sfBandIndex[sfreq].l[21]; sb > 0; sb-- )
         {  is_pos[i] = is_pos[sfb];
            is_ratio[i] = is_ratio[sfb];
            i++;
         }
      }
   }

   for(ch=0;ch<2;ch++)
      for(sb=0;sb<SBLIMIT;sb++)
         for(ss=0;ss<SSLIMIT;ss++)
            lr[ch][sb][ss] = 0;

   if (stereo==2)
      for(sb=0;sb<SBLIMIT;sb++)
         for(ss=0;ss<SSLIMIT;ss++) {
            i = (sb*18)+ss;
            if ( is_pos[i] == 7 ) {
               if ( ms_stereo ) {
                  lr[0][sb][ss] = (xr[0][sb][ss]+xr[1][sb][ss])/1.41421356;
                  lr[1][sb][ss] = (xr[0][sb][ss]-xr[1][sb][ss])/1.41421356;
               }
               else {
                  lr[0][sb][ss] = xr[0][sb][ss];
                  lr[1][sb][ss] = xr[1][sb][ss];
               }
            }
            else if (i_stereo ) {
               lr[0][sb][ss] = xr[0][sb][ss] * (is_ratio[i]/(1+is_ratio[i]));
               lr[1][sb][ss] = xr[0][sb][ss] * (1/(1+is_ratio[i]));
            }
            else {
               printf("Error in streo processing\n");
            }
         }
   else  /* mono , bypass xr[0][][] to lr[0][][]*/
      for(sb=0;sb<SBLIMIT;sb++)
         for(ss=0;ss<SSLIMIT;ss++)
            lr[0][sb][ss] = xr[0][sb][ss];

}


double Ci[8]={-0.6,-0.535,-0.33,-0.185,-0.095,-0.041,-0.0142,-0.0037};
void III_antialias(double xr[SBLIMIT][SSLIMIT], double hybridIn[SBLIMIT][SSLIMIT], struct gr_info_s *gr_info, frame_params *fr_ps)
{
   static int    init = 1;
   static double ca[8],cs[8];
   double        bu,bd;  /* upper and lower butterfly inputs */
   int           ss,sb,sblim;

   if (init) {
      int i;
      double    sq;
      for (i=0;i<8;i++) {
         sq=sqrt(1.0+Ci[i]*Ci[i]);
         cs[i] = 1.0/sq;
         ca[i] = Ci[i]/sq;
      }
      init = 0;
   }

   /* clear all inputs */

    for(sb=0;sb<SBLIMIT;sb++)
       for(ss=0;ss<SSLIMIT;ss++)
          hybridIn[sb][ss] = xr[sb][ss];

   if  (gr_info->window_switching_flag && (gr_info->block_type == 2) &&
       !gr_info->mixed_block_flag ) return;

   if ( gr_info->window_switching_flag && gr_info->mixed_block_flag &&
     (gr_info->block_type == 2))
      sblim = 1;
   else
      sblim = SBLIMIT-1;

   /* 31 alias-reduction operations between each pair of sub-bands */
   /* with 8 butterflies between each pair                         */

   for(sb=0;sb<sblim;sb++)
      for(ss=0;ss<8;ss++) {
         bu = xr[sb][17-ss];
         bd = xr[sb+1][ss];
         hybridIn[sb][17-ss] = (bu * cs[ss]) - (bd * ca[ss]);
         hybridIn[sb+1][ss] = (bd * cs[ss]) + (bu * ca[ss]);
         }
}


/*------------------------------------------------------------------*/
/*                                                                  */
/*    Function: Calculation of the inverse MDCT                     */
/*    In the case of short blocks the 3 output vectors are already  */
/*    overlapped and added in this modul.                           */
/*                                                                  */
/*    New layer3                                                    */
/*                                                                  */
/*------------------------------------------------------------------*/
void inv_mdct(double in[18], double out[36], int block_type)
{
	int     i,m,N,p;
	double  tmp[12],sum;
	static  double  win[4][36];
	static  int init=0;
	static  double COS[4*36];

    if(init==0){

    /* type 0 */
      for(i=0;i<36;i++)
         win[0][i] = sin( PI/36 *(i+0.5) );

    /* type 1*/
      for(i=0;i<18;i++)
         win[1][i] = sin( PI/36 *(i+0.5) );
      for(i=18;i<24;i++)
         win[1][i] = 1.0;
      for(i=24;i<30;i++)
         win[1][i] = sin( PI/12 *(i+0.5-18) );
      for(i=30;i<36;i++)
         win[1][i] = 0.0;

    /* type 3*/
      for(i=0;i<6;i++)
         win[3][i] = 0.0;
      for(i=6;i<12;i++)
         win[3][i] = sin( PI/12 *(i+0.5-6) );
      for(i=12;i<18;i++)
         win[3][i] =1.0;
      for(i=18;i<36;i++)
         win[3][i] = sin( PI/36*(i+0.5) );

    /* type 2*/
      for(i=0;i<12;i++)
         win[2][i] = sin( PI/12*(i+0.5) ) ;
      for(i=12;i<36;i++)
         win[2][i] = 0.0 ;

      for (i=0; i<4*36; i++)
         COS[i] = cos(PI/(2*36) * i);

      init++;
    }

    for(i=0;i<36;i++)
       out[i]=0;

    if(block_type == 2){
       N=12;
       for(i=0;i<3;i++){
          for(p= 0;p<N;p++){
             sum = 0.0;
             for(m=0;m<N/2;m++)
                sum += in[i+3*m] * cos( PI/(2*N)*(2*p+1+N/2)*(2*m+1) );
             tmp[p] = sum * win[block_type][p] ;
          }
          for(p=0;p<N;p++)
             out[6*i+p+6] += tmp[p];
       }
    }
    else{
      N=36;
      for(p= 0;p<N;p++){
         sum = 0.0;
         for(m=0;m<N/2;m++)
           sum += in[m] * COS[((2*p+1+N/2)*(2*m+1))%(4*36)];
         out[p] = sum * win[block_type][p];
      }
    }
}


void III_hybrid(double fsIn[SSLIMIT], double tsOut[SSLIMIT], int sb, int ch, struct gr_info_s *gr_info, frame_params *fr_ps)
/* fsIn:freq samples per subband in */
/* tsOut:time samples per subband out */
{
   int ss;
   double rawout[36];
   static double prevblck[2][SBLIMIT][SSLIMIT];
   static int init = 1;
   int bt;

   if (init) {
      int i,j,k;

      for(i=0;i<2;i++)
         for(j=0;j<SBLIMIT;j++)
            for(k=0;k<SSLIMIT;k++)
               prevblck[i][j][k]=0.0;
      init = 0;
   }

   bt = (gr_info->window_switching_flag && gr_info->mixed_block_flag &&
          (sb < 2)) ? 0 : gr_info->block_type;

   inv_mdct( fsIn, rawout, bt);

   /* overlap addition */
   for(ss=0; ss<SSLIMIT; ss++) {
      tsOut[ss] = rawout[ss] + prevblck[ch][sb][ss];
      prevblck[ch][sb][ss] = rawout[ss+18];
   }
}


/*************************************************************
/*
/*   Pass the subband sample through the synthesis window
/*
/**************************************************************/
/* create in synthesis filter */
void create_syn_filter(double filter[64][SBLIMIT])
{
	register int i,k;

	for (i=0; i<64; i++)
		for (k=0; k<32; k++) {
			if ((filter[i][k] = 1e9*cos((double)((PI64*i+PI4)*(2*k+1)))) >= 0)
				modf(filter[i][k]+0.5, &filter[i][k]);
			else
				modf(filter[i][k]-0.5, &filter[i][k]);
			filter[i][k] *= 1e-9;
		}
}


/***************************************************************
/*
/*   Window the restored sample
/*
/***************************************************************/
/* read in synthesis window */
void read_syn_window(double window[HAN_SIZE])
{
    int i,j[4];
    FILE *fp;
    double f[4];
    char t[150];

    if (!(fp = OpenTableFile("dewindow.txt") )) {
        printf("Please check synthesis window table 'dewindow.txt'\n");
        exit(1);
    }
    for (i=0;i<512;i+=4) {
        fgets(t, 150, fp);
        sscanf(t,"D[%d] = %lf D[%d] = %lf D[%d] = %lf D[%d] = %lf\n",
               j, f,j+1,f+1,j+2,f+2,j+3,f+3);
        if (i==j[0]) {
            window[i] = f[0];
            window[i+1] = f[1];
            window[i+2] = f[2];
            window[i+3] = f[3];
        }
        else {
            printf("Check index in synthesis window table\n");
            exit(1);
        }
        fgets(t,150,fp);
    }
    fclose(fp);
}

int SubBandSynthesis (double *bandPtr, int channel, short *samples)
{
	register int i,j,k;
	register double *bufOffsetPtr, sum;
	static int init = 1;
	typedef double NN[64][32];
	static NN *filter;
	typedef double BB[2][2*HAN_SIZE];
	static BB *buf;
	static int bufOffset[2] = {64,64};
	static double *window;
	int clip = 0;               /* count & return how many samples clipped */

	if (init) {
		buf = (BB *) mem_alloc(sizeof(BB),"BB");
		filter = (NN *) mem_alloc(sizeof(NN), "NN");
		create_syn_filter(*filter);
		window = (double *) mem_alloc(sizeof(double) * HAN_SIZE, "WIN");
		read_syn_window(window);
		init = 0;
	}
/*    if (channel == 0) */
	bufOffset[channel] = (bufOffset[channel] - 64) & 0x3ff;
	bufOffsetPtr = &((*buf)[channel][bufOffset[channel]]);

	for (i=0; i<64; i++) {
		sum = 0;
		for (k=0; k<32; k++)
			sum += bandPtr[k] * (*filter)[i][k];
		bufOffsetPtr[i] = sum;
	}
	/*  S(i,j) = D(j+32i) * U(j+32i+((i+1)>>1)*64)  */
	/*  samples(i,j) = MWindow(j+32i) * bufPtr(j+32i+((i+1)>>1)*64)  */
	for (j=0; j<32; j++) {
		sum = 0;
		for (i=0; i<16; i++) {
			k = j + (i<<5);
			sum += window[k] * (*buf) [channel] [( (k + ( ((i+1)>>1) <<6) ) +
												bufOffset[channel]) & 0x3ff];
		}
		{
			/*long foo = (sum > 0) ? sum * SCALE + 0.5 : sum * SCALE - 0.5; */
			long foo = sum * SCALE;
			if (foo >= (long) SCALE)      {samples[j] = SCALE-1; ++clip;}
			else if (foo < (long) -SCALE) {samples[j] = -SCALE;  ++clip;}
			else                           samples[j] = foo;
		}
	}
    return(clip);
}

void out_fifo(short pcm_sample[2][SSLIMIT][SBLIMIT], int num, frame_params *fr_ps, int done, FILE *outFile, unsigned long *psampFrames)
{
	int i,j,l;
	int stereo = fr_ps->stereo;
	int sblimit = fr_ps->sblimit;
	static short int outsamp[1600];
	static long k = 0;

    if (!done)
        for (i=0;i<num;i++) for (j=0;j<SBLIMIT;j++) {
            (*psampFrames)++;
            for (l=0;l<stereo;l++) {
                if (!(k%1600) && k) {
                    fwrite(outsamp,2,1600,outFile);
                    k = 0;
                }
                outsamp[k++] = pcm_sample[l][i][j];
            }
        }
    else {
        fwrite(outsamp,2,(int)k,outFile);
        k = 0;
    }
}


void  buffer_CRC(Bit_stream_struc *bs, unsigned int *old_crc)
{
    *old_crc = getbits(bs, 16);
}


extern int bitrate[3][15];
extern double s_freq[4];
/* Return the number of slots for main data of current frame, */
int main_data_slots(frame_params fr_ps)
{
	int nSlots;

	nSlots = (144 * bitrate[2][fr_ps.header->bitrate_index])
			/ s_freq[fr_ps.header->sampling_frequency];
	if (fr_ps.header->padding) nSlots++;
	nSlots -= 4;
	if (fr_ps.header->error_protection)
		nSlots -= 2;
	if (fr_ps.stereo == 1)
		nSlots -= 17;
	else
		nSlots -=32;
	return(nSlots);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级一区二区| 一区二区三区四区国产精品| 成人v精品蜜桃久久一区| 国产精品网曝门| 69久久99精品久久久久婷婷| 99久久777色| 国产成人综合亚洲网站| 污片在线观看一区二区| 亚洲天堂成人网| 亚洲国产成人午夜在线一区| 91精品国模一区二区三区| 色先锋aa成人| 处破女av一区二区| 国产一区二区三区免费在线观看| 波多野结衣在线一区| 免费成人小视频| 亚洲国产你懂的| 亚洲精品国产品国语在线app| 久久久久国产精品厨房| 精品少妇一区二区三区在线视频| 欧美日韩综合色| 色综合欧美在线| 99久久精品免费观看| 成人美女视频在线观看| 国产成人av一区二区三区在线观看| 日韩不卡免费视频| 亚洲国产日日夜夜| 亚洲国产一区视频| 一区二区欧美视频| 一区二区三区在线不卡| 亚洲欧洲制服丝袜| 亚洲欧美日韩在线| 《视频一区视频二区| 国产精品―色哟哟| 国产精品久久一级| 国产精品乱人伦| 国产精品电影一区二区三区| 日本一区二区免费在线| 国产欧美日韩在线看| 久久精品日韩一区二区三区| 精品久久久久久久久久久院品网| 日韩一二在线观看| 欧美岛国在线观看| 久久久亚洲综合| 亚洲国产精品传媒在线观看| 欧美激情在线免费观看| 国产精品国产三级国产普通话蜜臀| 国产精品情趣视频| 亚洲视频免费在线观看| 一区二区三区精密机械公司| 亚洲一区二区综合| 日韩国产精品大片| 久久国产剧场电影| 高清在线不卡av| 91丨porny丨在线| 欧美午夜寂寞影院| 欧美成人一区二区三区在线观看| 日韩欧美国产综合一区| 国产亚洲污的网站| 中文字幕综合网| 亚洲成人免费av| 久久99精品久久久久久| 国产精品亚洲第一区在线暖暖韩国| 国产91精品一区二区麻豆亚洲| 成人国产精品免费观看| 欧美专区在线观看一区| 欧美一区二区三区四区视频| 久久久影院官网| 亚洲人成小说网站色在线| 亚洲地区一二三色| 激情伊人五月天久久综合| 成人丝袜视频网| 欧美三级午夜理伦三级中视频| 日韩欧美一级二级| 国产精品视频第一区| 亚洲高清免费视频| 另类小说视频一区二区| 99久精品国产| 精品免费99久久| 亚洲欧美另类久久久精品2019| 日本网站在线观看一区二区三区 | 国产精品一区免费视频| 99re8在线精品视频免费播放| 欧美性三三影院| 久久久一区二区三区捆绑**| 亚洲一区二区三区爽爽爽爽爽| 久久99久久精品| 91浏览器打开| 久久影院视频免费| 亚洲国产毛片aaaaa无费看| 国内精品视频666| 欧美三级欧美一级| 久久无码av三级| 日日骚欧美日韩| 99re这里只有精品6| 日韩一区二区影院| 亚洲精品乱码久久久久久| 国产美女娇喘av呻吟久久| 欧美调教femdomvk| 欧美国产精品劲爆| 蜜臀av性久久久久蜜臀av麻豆| 99视频热这里只有精品免费| 欧美大片在线观看一区二区| 亚洲与欧洲av电影| jiyouzz国产精品久久| 久久一区二区三区四区| 日韩主播视频在线| 91福利精品第一导航| 国产精品情趣视频| 国产一区在线看| 日韩午夜精品视频| 午夜在线电影亚洲一区| 91麻豆免费看片| 国产精品久久久一区麻豆最新章节| 麻豆精品一二三| 欧美精选在线播放| 亚洲欧美成人一区二区三区| 国产河南妇女毛片精品久久久| 日韩视频123| 日韩精品免费视频人成| 欧美美女网站色| 亚洲一区二区av电影| 99国产精品久| 成人免费在线播放视频| 成人h版在线观看| 久久久99精品免费观看不卡| 久久成人av少妇免费| 日韩欧美在线1卡| 男男gaygay亚洲| 欧美一区二区三区视频免费播放 | 成人综合婷婷国产精品久久免费| 日韩免费观看2025年上映的电影| 天天射综合影视| 欧美剧情片在线观看| 亚洲香肠在线观看| 欧美性极品少妇| 亚洲成a人v欧美综合天堂下载| 欧美在线综合视频| 亚洲国产美女搞黄色| 欧美高清视频一二三区| 免费高清在线一区| 久久综合色综合88| 高清成人在线观看| 国产精品成人网| 在线观看日韩电影| 天天av天天翘天天综合网色鬼国产| 欧美三级视频在线播放| 日本伊人精品一区二区三区观看方式| 日韩三级免费观看| 国产老女人精品毛片久久| 国产欧美精品日韩区二区麻豆天美| 成人丝袜视频网| 一级精品视频在线观看宜春院| 欧美日韩在线不卡| 麻豆精品久久精品色综合| 久久综合狠狠综合久久综合88| 福利一区二区在线观看| 亚洲精品国产第一综合99久久 | 国产精品自拍在线| 中文字幕一区二区三区蜜月| 色妞www精品视频| 偷窥少妇高潮呻吟av久久免费| 欧美成人精精品一区二区频| 国产不卡视频一区二区三区| 一区二区三区精品在线| 日韩精品一区二区三区在线观看| 国产乱码精品一区二区三区五月婷| 国产精品久99| 欧美精品久久天天躁| 国产精品影音先锋| 亚洲精选免费视频| 91精品国产美女浴室洗澡无遮挡| 国产精品影音先锋| 亚洲一区二区三区中文字幕在线| 日韩欧美国产一二三区| 波多野结衣中文字幕一区二区三区 | 久久蜜桃av一区二区天堂| 99在线视频精品| 日韩国产欧美视频| 中文字幕一区不卡| 日韩欧美中文一区二区| av一二三不卡影片| 日本欧美肥老太交大片| 日韩理论电影院| 精品国精品自拍自在线| 波多野结衣91| 看国产成人h片视频| 亚洲色图一区二区| 精品免费一区二区三区| 欧美日韩在线综合| 成人黄色在线视频| 久久er精品视频| 亚洲观看高清完整版在线观看| 国产精品视频九色porn| 精品少妇一区二区三区在线播放| 欧美中文字幕久久| 99精品久久只有精品| 国内精品久久久久影院一蜜桃| 亚洲成人激情综合网| 亚洲人被黑人高潮完整版|