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

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

?? decode.c

?? mp3 源代碼void III_hufman_decode
?? C
?? 第 1 頁 / 共 4 頁
字號:
double xr[2][SBLIMIT][SSLIMIT];
double lr[2][SBLIMIT][SSLIMIT];
III_scalefac_t *scalefac;
struct gr_info_s *gr_info;
frame_params *fr_ps;
{
   int sfreq = fr_ps->header->sampling_frequency;
   int stereo = fr_ps->stereo;
   int ms_stereo = (fr_ps->header->mode == MPG_MD_JOINT_STEREO) &&
                   (fr_ps->header->mode_ext & 0x2); 
   int i_stereo = (fr_ps->header->mode == MPG_MD_JOINT_STEREO) &&
                  (fr_ps->header->mode_ext & 0x1);
   int js_bound;  /* frequency line that marks the beggining of the zero part */  
   int sfb,next_sfb_boundary;
   int i,j,sb,ss,ch,is_pos[576]; 
   double is_ratio[576];
  
   /* intialization */
   for ( i=0; i<576; i++ )
      is_pos[i] = 7;

   if ((stereo == 2) && i_stereo )
   {  if (gr_info->window_switching_flag && (gr_info->block_type == 2))
      {  if( gr_info->mixed_block_flag )
         {  int max_sfb = 0;

            for ( j=0; j<3; j++ )
            {  int sfbcnt;
               sfbcnt = 2;
               for( sfb=12; sfb >=3; 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;

               if ( sfb > max_sfb )
                  max_sfb = sfb;

               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++;
               }
             }
             if ( max_sfb <= 3 )
             {  i = 2;
                ss = 17;
                sb = -1;
                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<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(xr, hybridIn, gr_info, fr_ps)
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]);
         }  
}

void inv_mdct(in, out, block_type)
double in[18];
double out[36];
int block_type;
{
/*------------------------------------------------------------------*/
/*                                                                  */
/*    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                                                    */
/*                                                                  */
/*------------------------------------------------------------------*/

int     k,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(fsIn, tsOut ,sb, ch, gr_info, fr_ps)
double fsIn[SSLIMIT];   /* freq samples per subband in */
double tsOut[SSLIMIT];  /* time samples per subband out */
int sb, ch;
struct gr_info_s *gr_info;             
frame_params *fr_ps;            
{
   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];
   }
}

/* Return the number of slots for main data of current frame, */

int main_data_slots(fr_ps)
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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产综合色视频| 欧美性色欧美a在线播放| 亚洲精品在线电影| 久久91精品久久久久久秒播| 欧美日韩免费在线视频| 日韩激情在线观看| 日韩你懂的在线观看| 久久99国产精品尤物| 久久久.com| 色哟哟一区二区在线观看| 一区二区三区在线观看欧美| 欧美日韩五月天| 日本三级韩国三级欧美三级| 日韩精品专区在线影院观看 | av午夜精品一区二区三区| 国产欧美精品区一区二区三区| 国产不卡视频一区二区三区| 国产精品短视频| 在线观看三级视频欧美| 性久久久久久久久久久久| 欧美大片拔萝卜| 成人毛片视频在线观看| 一区二区三区视频在线看| 欧美美女网站色| 国产乱一区二区| 亚洲乱码精品一二三四区日韩在线 | 精品午夜一区二区三区在线观看 | 国产欧美一区二区精品性色超碰| 成人精品视频网站| 偷窥少妇高潮呻吟av久久免费| 日韩欧美精品三级| 91影视在线播放| 美美哒免费高清在线观看视频一区二区 | 国产伦理精品不卡| 亚洲一区视频在线| 久久久综合精品| 欧美午夜免费电影| 国产91在线看| 美女在线观看视频一区二区| 亚洲天堂免费在线观看视频| 欧美电视剧在线看免费| 91丨porny丨蝌蚪视频| 日韩高清中文字幕一区| 国产精品久久久久9999吃药| 欧美久久高跟鞋激| 99精品视频一区二区| 久久精品国产精品亚洲红杏| 中文字幕一区二| 久久综合色鬼综合色| 欧美日韩国产系列| 91啪亚洲精品| 国产在线视频一区二区三区| 亚洲va欧美va人人爽午夜| 中文字幕一区二区日韩精品绯色| 91麻豆精品国产91久久久更新时间| 成人高清av在线| 久久不见久久见中文字幕免费| 亚洲精品欧美综合四区| 国产性色一区二区| 91麻豆免费观看| 国产欧美一区二区精品性色超碰| 亚洲最大成人网4388xx| 久久亚洲精华国产精华液| 欧美四级电影网| 一本久久a久久免费精品不卡| 精品中文字幕一区二区小辣椒| 亚洲永久精品国产| 最近中文字幕一区二区三区| 久久久久久久电影| 日韩一级成人av| 制服视频三区第一页精品| 91久久精品一区二区三| av电影在线观看一区| 成人中文字幕电影| 豆国产96在线|亚洲| 国产成人在线观看| 国产一区二区三区观看| 国产一区二区在线免费观看| 老司机午夜精品| 久久精品二区亚洲w码| 蜜臀av国产精品久久久久| 日本中文字幕一区| 免费人成黄页网站在线一区二区| 日韩二区在线观看| 秋霞午夜鲁丝一区二区老狼| 喷水一区二区三区| 精品一区二区三区在线观看| 麻豆精品视频在线观看| 精品一区二区日韩| 国产一区不卡精品| 9久草视频在线视频精品| av成人老司机| 欧美色中文字幕| 日韩一区二区三区三四区视频在线观看 | 亚洲人成在线播放网站岛国| 亚洲欧洲精品天堂一级| 一卡二卡三卡日韩欧美| 亚洲成人激情综合网| 秋霞国产午夜精品免费视频| 国产一区二区三区黄视频| www.色精品| 欧美色偷偷大香| 2021久久国产精品不只是精品 | 国产精品久久久久久久午夜片| 国产精品麻豆久久久| 国产精品国产a级| 一区二区三区蜜桃| 看电视剧不卡顿的网站| 国产精品888| 色欲综合视频天天天| 91精品国产综合久久婷婷香蕉 | 91精品国产色综合久久不卡电影 | 天天亚洲美女在线视频| 国内久久精品视频| eeuss国产一区二区三区| 欧美视频中文一区二区三区在线观看| 51午夜精品国产| 国产精品久久三区| 亚洲线精品一区二区三区八戒| 石原莉奈在线亚洲二区| 懂色av中文一区二区三区| 欧美日韩一级视频| 国产欧美一区二区精品仙草咪| 亚洲一二三区视频在线观看| 久久er精品视频| 欧美制服丝袜第一页| 久久综合九色欧美综合狠狠| 亚洲精品成人在线| 国产99久久久久久免费看农村| 欧美日韩精品一区二区三区四区| 久久久久97国产精华液好用吗| 一区二区三区不卡在线观看| 国产一区日韩二区欧美三区| 精品视频在线免费| 国产精品的网站| 国产在线精品视频| 欧美精品乱码久久久久久| 国产精品婷婷午夜在线观看| 免费观看91视频大全| 在线亚洲高清视频| 国产精品日韩精品欧美在线| 男女视频一区二区| 欧美四级电影网| 亚洲免费观看高清完整版在线观看 | 精品国产制服丝袜高跟| 一区二区在线观看免费| 狠狠色丁香婷综合久久| 在线不卡a资源高清| 亚洲精品乱码久久久久| 国产超碰在线一区| 久久网站热最新地址| 免费高清成人在线| 欧美一区二区三区免费| 午夜精品成人在线视频| 91久久线看在观草草青青| 亚洲特级片在线| 不卡视频在线看| 国产精品区一区二区三| 极品少妇xxxx精品少妇| 日韩视频不卡中文| 日韩精品电影在线| 7777女厕盗摄久久久| 亚洲mv在线观看| 欧美精品xxxxbbbb| 亚洲地区一二三色| 欧美精品第1页| 日韩高清一区在线| 欧美大片免费久久精品三p| 免费高清在线视频一区·| 日韩一区二区不卡| 国产一区二区三区视频在线播放| 日韩欧美国产综合| 国产在线视视频有精品| 久久久久久久久久久久久女国产乱| 久久精品久久精品| 久久综合999| 成人av在线资源| 亚洲丝袜自拍清纯另类| 色婷婷国产精品综合在线观看| 亚洲综合999| 91精品国产免费| 久久精品国产免费| 中文字幕av在线一区二区三区| 99久久er热在这里只有精品66| 欧美国产1区2区| 色婷婷av一区二区三区大白胸| 亚洲18色成人| 欧美精品一区二区三区四区| 国产丶欧美丶日本不卡视频| 国产欧美日韩在线| 欧洲av一区二区嗯嗯嗯啊| 日韩精彩视频在线观看| 26uuu久久天堂性欧美| 成人小视频免费在线观看| 18成人在线视频| 欧美久久免费观看| 国产精品77777| 艳妇臀荡乳欲伦亚洲一区| 欧美日本一区二区三区| 国模娜娜一区二区三区|