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

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

?? musicout.c

?? mp3 源代碼void III_hufman_decode
?? C
?? 第 1 頁 / 共 2 頁
字號:
           encoded_file_name, decoded_file_name);
    if(need_aiff) printf("Output file written in AIFF format\n");
    if(need_esps) printf("Output file written in ESPS format\n"); /* MI */

    if ((musicout = fopen(decoded_file_name, "w+b")) == NULL) {
       printf ("Could not create \"%s\".\n", decoded_file_name);
       exit(1);
    }

    open_bit_stream_r(&bs, encoded_file_name, BUFFER_SIZE);

    if (need_aiff)
       if (aiff_seek_to_sound_data(musicout) == -1) {
          printf("Could not seek to PCM sound data in \"%s\".\n",
                 decoded_file_name);
          exit(1);
       }

    sample_frames = 0;

    while (!end_bs(&bs)) {

       sync = seek_sync(&bs, SYNC_WORD, SYNC_WORD_LNGTH);
       frameBits = sstell(&bs) - gotBits;
       if(frameNum > 0)        /* don't want to print on 1st loop; no lay */
          if(frameBits%bitsPerSlot)
             fprintf(stderr,"Got %ld bits = %ld slots plus %ld\n",
                     frameBits, frameBits/bitsPerSlot, frameBits%bitsPerSlot);
       gotBits += frameBits;

       if (!sync) {
          printf("Frame cannot be located\n");
          printf("Input stream may be empty\n");
          done = TRUE;
          /* finally write out the buffer */
          if (info.lay != 1) out_fifo(*pcm_sample, 3, &fr_ps, done,
                                      musicout, &sample_frames);
          else               out_fifo(*pcm_sample, 1, &fr_ps, done,
                                      musicout, &sample_frames);
          break;
       }

       decode_info(&bs, &fr_ps);
       hdr_to_frps(&fr_ps);
       stereo = fr_ps.stereo;
       error_protection = info.error_protection;
       crc_error_count = 0;
       total_error_count = 0;
       if(frameNum == 0) WriteHdr(&fr_ps, stdout);  /* printout layer/mode */

#ifdef ESPS
if (frameNum == 0 && need_esps) {
esps_write_header(musicout,(long) sample_frames, (double)
s_freq[info.sampling_frequency] * 1000,
(int) stereo, decoded_file_name );
} /* MI */
#endif

       fprintf(stderr, "{%4lu}", frameNum++); fflush(stderr);
       if (error_protection) buffer_CRC(&bs, &old_crc);

       switch (info.lay) {

          case 1: {
             bitsPerSlot = 32;        samplesPerFrame = 384;
             I_decode_bitalloc(&bs,bit_alloc,&fr_ps);
             I_decode_scale(&bs, bit_alloc, scale_index, &fr_ps);

             if (error_protection) {
                I_CRC_calc(&fr_ps, bit_alloc, &new_crc);
                if (new_crc != old_crc) {
                   crc_error_count++;
                   total_error_count++;
                   recover_CRC_error(*pcm_sample, crc_error_count,
                                     &fr_ps, musicout, &sample_frames);
                   break;
                }
                else crc_error_count = 0;
             }

             clip = 0;
             for (i=0;i<SCALE_BLOCK;i++) {
                I_buffer_sample(&bs,(*sample),bit_alloc,&fr_ps);
                I_dequantize_sample(*sample,*fraction,bit_alloc,&fr_ps);
                I_denormalize_sample((*fraction),scale_index,&fr_ps);
                if(topSb>0)        /* clear channels to 0 */
                   for(j=topSb; j<fr_ps.sblimit; ++j)
                      for(k=0; k<stereo; ++k)
                         (*fraction)[k][0][j] = 0;

                for (j=0;j<stereo;j++) {
                   clip += SubBandSynthesis (&((*fraction)[j][0][0]), j,
                                             &((*pcm_sample)[j][0][0]));
                }
                out_fifo(*pcm_sample, 1, &fr_ps, done,
                         musicout, &sample_frames);
             }
             if(clip > 0) printf("%d output samples clipped\n", clip);
             break;
          }

          case 2: {
             bitsPerSlot = 8;        samplesPerFrame = 1152;
             II_decode_bitalloc(&bs, bit_alloc, &fr_ps);
             II_decode_scale(&bs, scfsi, bit_alloc, scale_index, &fr_ps);

             if (error_protection) { 
                II_CRC_calc(&fr_ps, bit_alloc, scfsi, &new_crc);
                if (new_crc != old_crc) {
                   crc_error_count++;
                   total_error_count++;
                   recover_CRC_error(*pcm_sample, crc_error_count,
                                     &fr_ps, musicout, &sample_frames);
                   break;
                }
                else crc_error_count = 0;
             }

             clip = 0;
             for (i=0;i<SCALE_BLOCK;i++) {
                II_buffer_sample(&bs,(*sample),bit_alloc,&fr_ps);
                II_dequantize_sample((*sample),bit_alloc,(*fraction),&fr_ps);
                II_denormalize_sample((*fraction),scale_index,&fr_ps,i>>2);

                if(topSb>0)        /* debug : clear channels to 0 */
                   for(j=topSb; j<fr_ps.sblimit; ++j)
                      for(k=0; k<stereo; ++k)
                         (*fraction)[k][0][j] =
                         (*fraction)[k][1][j] =
                         (*fraction)[k][2][j] = 0;

                for (j=0;j<3;j++) for (k=0;k<stereo;k++) {
                   clip += SubBandSynthesis (&((*fraction)[k][j][0]), k,
                                             &((*pcm_sample)[k][j][0]));
                }
                out_fifo(*pcm_sample, 3, &fr_ps, done, musicout,
                         &sample_frames);
             }
             if(clip > 0) printf("%d samples clipped\n", clip);
             break;
          }

          case 3: {
             int nSlots;
             int gr, ch, ss, sb, main_data_end, flush_main ;
	     int  bytes_to_discard ;
	     static int frame_start = 0;
             bitsPerSlot = 8;        samplesPerFrame = 1152;

             III_get_side_info(&bs, &III_side_info, &fr_ps);
             nSlots = main_data_slots(fr_ps);
             for (; nSlots > 0; nSlots--)  /* read main data. */
                hputbuf((unsigned int) getbits(&bs,8), 8);
	     main_data_end = hsstell() / 8; /*of privious frame*/
             if ( flush_main=(hsstell() % bitsPerSlot) ) { 
                hgetbits((int)(bitsPerSlot - flush_main));
		main_data_end ++;
	     }
             bytes_to_discard = frame_start - main_data_end
 			            - III_side_info.main_data_begin ;
             if( main_data_end > 4096 )
             {   frame_start -= 4096;
                 rewindNbytes( 4096 );
             }

             frame_start += main_data_slots(fr_ps);
             if (bytes_to_discard < 0) {
         printf("Not enough main data to decode frame %d.  Frame discarded.\n", 
                        frameNum - 1); break;
             }
             for (; bytes_to_discard > 0; bytes_to_discard--) hgetbits(8);

             clip = 0;
             for (gr=0;gr<2;gr++) {
               double lr[2][SBLIMIT][SSLIMIT],ro[2][SBLIMIT][SSLIMIT];

               for (ch=0; ch<stereo; ch++) {
                 long int is[SBLIMIT][SSLIMIT];   /* Quantized samples. */
                 int part2_start;
                 part2_start = hsstell();
                 III_get_scale_factors(III_scalefac,&III_side_info,gr,ch,
			&fr_ps);
                 III_hufman_decode(is, &III_side_info, ch, gr, part2_start,
                                   &fr_ps);
                 III_dequantize_sample(is, ro[ch], &III_scalefac,
                                   &(III_side_info.ch[ch].gr[gr]), ch, &fr_ps);
               }
               III_stereo(ro,lr,III_scalefac,
                            &(III_side_info.ch[0].gr[gr]), &fr_ps);
               for (ch=0; ch<stereo; ch++) {
                    double re[SBLIMIT][SSLIMIT];
                    double hybridIn[SBLIMIT][SSLIMIT];/* Hybrid filter input */
                    double hybridOut[SBLIMIT][SSLIMIT];/* Hybrid filter out */
                    double polyPhaseIn[SBLIMIT];     /* PolyPhase Input. */

                    III_reorder (lr[ch],re,&(III_side_info.ch[ch].gr[gr]),
                                  &fr_ps);
                    III_antialias(re, hybridIn, /* Antialias butterflies. */
                                  &(III_side_info.ch[ch].gr[gr]), &fr_ps);
                    for (sb=0; sb<SBLIMIT; sb++) { /* Hybrid synthesis. */
                        III_hybrid(hybridIn[sb], hybridOut[sb], sb, ch,
                                   &(III_side_info.ch[ch].gr[gr]), &fr_ps);
                    }
                    for (ss=0;ss<18;ss++) /*Frequency inversion for polyphase.*/
                       for (sb=0; sb<SBLIMIT; sb++)
                          if ((ss%2) && (sb%2))
                             hybridOut[sb][ss] = -hybridOut[sb][ss];
                    for (ss=0;ss<18;ss++) { /* Polyphase synthesis */
                        for (sb=0; sb<SBLIMIT; sb++)
                            polyPhaseIn[sb] = hybridOut[sb][ss];
                        clip += SubBandSynthesis (polyPhaseIn, ch,
                                                  &((*pcm_sample)[ch][ss][0]));
                        }
                    }
                /* Output PCM sample points for one granule. */
                out_fifo(*pcm_sample, 18, &fr_ps, done, musicout,
                         &sample_frames);
             }
             if(clip > 0) printf("%d samples clipped.\n", clip);
             break;
          }
       }
    }

    if (need_aiff) {
       pcm_aiff_data.numChannels       = stereo;
       pcm_aiff_data.numSampleFrames   = sample_frames;
       pcm_aiff_data.sampleSize        = 16;
       pcm_aiff_data.sampleRate        = s_freq[info.sampling_frequency]*1000;
#ifdef IFF_LONG
       pcm_aiff_data.sampleType        = IFF_ID_SSND;
#else
       strncpy(&pcm_aiff_data.sampleType,IFF_ID_SSND,4);
#endif
       pcm_aiff_data.blkAlgn.offset    = 0;
       pcm_aiff_data.blkAlgn.blockSize = 0;

       if (aiff_write_headers(musicout, &pcm_aiff_data) == -1) {
          printf("Could not write AIFF headers to \"%s\"\n",
                 decoded_file_name);
          exit(2);
       }
    }

    printf("Avg slots/frame = %.3f; b/smp = %.2f; br = %.3f kbps\n",
           (FLOAT) gotBits / (frameNum * bitsPerSlot),
           (FLOAT) gotBits / (frameNum * samplesPerFrame),
           (FLOAT) gotBits / (frameNum * samplesPerFrame) *
           s_freq[info.sampling_frequency]);

    close_bit_stream_r(&bs);
    fclose(musicout);

    /* for the correct AIFF header information */
    /*             on the Macintosh            */
    /* the file type and the file creator for  */
    /* Macintosh compatible Digidesign is set  */

#ifdef  MACINTOSH
    if (need_aiff) set_mac_file_attr(decoded_file_name, VOL_REF_NUM,
                                     CREATR_DEC_AIFF, FILTYP_DEC_AIFF);
    else           set_mac_file_attr(decoded_file_name, VOL_REF_NUM,
                                     CREATR_DEC_BNRY, FILTYP_DEC_BNRY);
#endif

    printf("Decoding of \"%s\" is finished\n", encoded_file_name);
    printf("The decoded PCM output file name is \"%s\"\n", decoded_file_name);
    if (need_aiff)
       printf("\"%s\" has been written with AIFF header information\n",
              decoded_file_name);

    exit( 0 );
}

static void usage()  /* print syntax & exit */
{
   fprintf(stderr,
      "usage: %s                         queries for all arguments, or\n",
       programName);
   fprintf(stderr,
      "       %s [-A][-s sb] inputBS [outPCM]\n", programName);
   fprintf(stderr,"where\n");
   fprintf(stderr," -A       write an AIFF output PCM sound file\n");
   fprintf(stderr," -s sb    resynth only up to this sb (debugging only)\n");
   fprintf(stderr," inputBS  input bit stream of encoded audio\n");
   fprintf(stderr," outPCM   output PCM sound file (dflt inName+%s)\n",
           DFLT_OPEXT);
   exit(1);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩一区二区三区免费视频| 亚洲成人免费电影| 亚洲国产精品尤物yw在线观看| 日本美女一区二区三区视频| 成人综合婷婷国产精品久久蜜臀| 91精品国产91久久综合桃花 | 成人一区二区在线观看| 欧美日韩亚洲综合在线| 国产精品三级av| 国内久久精品视频| 欧美猛男超大videosgay| 国产精品传媒入口麻豆| 国产乱淫av一区二区三区| 91麻豆精品久久久久蜜臀| 亚洲一区二区三区四区中文字幕| 成人中文字幕在线| 久久久99精品免费观看不卡| 蜜桃精品视频在线观看| 欧美女孩性生活视频| 亚洲妇熟xx妇色黄| 在线精品视频一区二区三四| 国产精品久久久久久户外露出 | 亚洲欧美视频在线观看视频| 国产成人aaa| 久久久久久电影| 久久精工是国产品牌吗| 日韩欧美综合在线| 蜜乳av一区二区三区| 7777女厕盗摄久久久| 日韩国产精品久久| 91精品国产综合久久久蜜臀图片| 亚洲国产精品久久人人爱| 欧美色男人天堂| 五月婷婷久久丁香| 91麻豆精品国产91久久久| 亚洲成av人影院在线观看网| 欧美日韩国产高清一区二区三区 | 亚洲色图视频网站| 色菇凉天天综合网| 亚洲综合丝袜美腿| 制服丝袜亚洲网站| 国产自产2019最新不卡| 国产肉丝袜一区二区| 国产成人精品综合在线观看| 国产欧美日韩亚州综合| www.欧美亚洲| 亚洲亚洲人成综合网络| 欧美高清一级片在线| 日本aⅴ亚洲精品中文乱码| 精品国产一区二区三区久久久蜜月| 久草精品在线观看| 国产精品视频一二三区| 91成人免费网站| 麻豆精品久久精品色综合| 国产日韩欧美精品在线| 色先锋aa成人| 极品少妇xxxx精品少妇偷拍| 国产亚洲精品久| 91福利在线免费观看| 蜜臀精品久久久久久蜜臀| 欧美极品美女视频| 欧美午夜精品久久久久久孕妇 | 亚洲一区二区成人在线观看| 欧美一区二区三区在线观看视频| 国产精品一级片| 一区二区三区成人| 欧美精品一区二区三区高清aⅴ| 成人av资源网站| 日本亚洲天堂网| 国产精品久久久久久户外露出| 欧美三级视频在线播放| 国产成人8x视频一区二区| 婷婷中文字幕一区三区| 中文字幕一区二区三区乱码在线| 欧美一区二区视频在线观看2022| 91在线你懂得| 黑人巨大精品欧美黑白配亚洲| 亚洲综合一区二区| 国产精品青草综合久久久久99| 4438x亚洲最大成人网| 91视频观看视频| 韩国一区二区视频| 亚洲午夜免费视频| 国产精品色婷婷| 久久一留热品黄| 欧美高清你懂得| 在线一区二区三区四区五区| 国产酒店精品激情| 美女脱光内衣内裤视频久久网站| 亚洲精品免费播放| 国产精品第四页| 中文字幕第一页久久| 日韩欧美不卡一区| 欧美丰满嫩嫩电影| 色哦色哦哦色天天综合| 成人综合婷婷国产精品久久蜜臀| 韩国欧美国产1区| 日韩电影在线观看电影| 亚洲五码中文字幕| 亚洲一二三区不卡| 一区二区理论电影在线观看| 国产精品嫩草影院av蜜臀| 久久综合九色综合欧美就去吻| 欧美电影影音先锋| 欧美性色综合网| 欧美撒尿777hd撒尿| 欧美在线三级电影| 色噜噜狠狠成人中文综合| 99久久99久久久精品齐齐| 成人激情综合网站| 不卡一区在线观看| fc2成人免费人成在线观看播放 | 国产欧美视频一区二区| 日本一区二区三区在线不卡| 国产日韩av一区| 久久精品亚洲乱码伦伦中文| 久久人人97超碰com| 久久久久久久久99精品| 国产欧美一区二区精品秋霞影院| 久久久国产综合精品女国产盗摄| 欧美成人一区二区| 久久久综合九色合综国产精品| 欧美精品一区二区三区在线 | 亚洲图片欧美视频| 香蕉乱码成人久久天堂爱免费| 午夜激情一区二区三区| 免费人成网站在线观看欧美高清| 精品制服美女丁香| 国产精品白丝jk黑袜喷水| 国产·精品毛片| 91亚洲国产成人精品一区二三| 色婷婷综合久久久中文字幕| 欧美麻豆精品久久久久久| 欧美一区二区性放荡片| 国产亚洲欧美激情| 一区二区三区精品视频| 日韩高清中文字幕一区| 国产福利一区二区三区| 色欧美片视频在线观看在线视频| 欧美久久一区二区| 2021久久国产精品不只是精品| 国产女人水真多18毛片18精品视频 | 精品va天堂亚洲国产| 久久久一区二区| 亚洲精品欧美激情| 夜色激情一区二区| 精品亚洲成a人| 日本精品一区二区三区高清| 欧美一区二区三区视频在线| 国产欧美va欧美不卡在线| 亚洲一本大道在线| 国产69精品一区二区亚洲孕妇| 欧美综合欧美视频| 久久蜜臀中文字幕| 亚洲电影一区二区三区| 国产麻豆精品在线| 欧美日韩国产影片| 国产精品免费免费| 老司机免费视频一区二区三区| 不卡的av电影在线观看| 欧美一区二区三区日韩视频| 亚洲图片另类小说| 久久精品久久99精品久久| 色婷婷综合激情| 国产欧美日韩视频一区二区| 日本 国产 欧美色综合| 99国产精品久久久久久久久久久| 欧美一级欧美三级| 亚洲精品成a人| 国产成人午夜视频| 日韩一区二区在线免费观看| 亚洲欧美电影院| 99re在线视频这里只有精品| 在线播放/欧美激情| 1区2区3区国产精品| 大陆成人av片| 国产亚洲一本大道中文在线| 蜜桃av一区二区在线观看| 在线观看区一区二| 亚洲同性gay激情无套| 国产成人午夜视频| 久久久久国产精品免费免费搜索| 麻豆国产精品777777在线| 欧美午夜精品理论片a级按摩| 亚洲欧美激情插 | 国产精品一区二区久久精品爱涩| 欧美男女性生活在线直播观看| 亚洲色图一区二区三区| 丁香天五香天堂综合| 久久久久久久综合日本| 国内久久婷婷综合| 国产亚洲精品aa| 国产乱人伦精品一区二区在线观看 | 久久精品一区四区| 美女视频一区二区| 精品久久久影院| 国产一区二区三区观看| 2017欧美狠狠色| 懂色av中文字幕一区二区三区| 精品免费国产二区三区|