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

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

?? decode.c

?? mp3 源代碼void III_hufman_decode
?? C
?? 第 1 頁 / 共 4 頁
字號:
/**********************************************************************
Copyright (c) 1991 MPEG/audio software simulation group, All Rights Reserved
decode.c
**********************************************************************/
/**********************************************************************
 * MPEG/audio coding/decoding software, work in progress              *
 *   NOT for public distribution until verified and approved by the   *
 *   MPEG/audio committee.  For further information, please contact   *
 *   Davis Pan, 708-538-5671, e-mail: pan@ukraine.corp.mot.com        *
 *                                                                    *
 * VERSION 4.3                                                        * 
 *   changes made since last update:                                  *
 *   date   programmers         comment                               *
 * 2/25/91  Douglas Wong,       start of version 1.0 records          *
 *          Davis Pan                                                 *
 * 3/06/91  Douglas Wong        rename: setup.h to dedef.h            *
 *                                      dfilter to defilter           *
 *                                      dwindow to dewindow           *
 *                              integrated "quantizer", "scalefactor" *
 *                              combined window_samples routine into  *
 *                              filter samples                        *
 * 3/31/91  Bill Aspromonte     replaced read_filter by               *
 *                              create_syn_filter and introduced a    *
 *                              new Sub-Band Synthesis routine called *
 *                              SubBandSynthesis()                    *
 * 5/10/91  Vish (PRISM)        Ported to Macintosh and Unix.         *
 *                              Changed "out_fifo()" so that last     *
 *                              unfilled block is also written out.   *
 *                              "create_syn_filter()" was modified so *
 *                              that calculation precision is same as *
 *                              in specification tables.              *
 *                              Changed "decode_scale()" to reflect   *
 *                              specifications.                       *
 *                              Removed all routines used by          *
 *                              "synchronize_buffer()".  This is now  *
 *                              replaced by "seek_sync()".            *
 *                              Incorporated Jean-Georges Fritsch's   *
 *                              "bitstream.c" package.                *
 *                              Deleted "reconstruct_sample()".       *
 * 27jun91  dpwe (Aware)        Passed outFile and &sampFrames as     *
 *                              args to out_fifo() - were global.     *
 *                              Moved "alloc_*" reader to common.c.   *
 *                              alloc, sblimit, stereo passed via new *
 *                              'frame_params struct (were globals).  *
 *                              Added JOINT STEREO decoding, lyrs I&II*
 *                              Affects: decode_bitalloc,buffer_samps *
 *                              Plus a few other cleanups.            *
 * 6/10/91   Earle Jennings     conditional expansion added in        *
 *                              II_dequantize_sample to handle range  *
 *                              problems in MSDOS version             *
 * 8/8/91    Jens Spille        Change for MS-C6.00                   *
 *10/1/91    S.I. Sudharsanan,  Ported to IBM AIX platform.           *
 *           Don H. Lee,                                              *
 *           Peter W. Farrett                                         *
 *10/3/91    Don H. Lee         implemented CRC-16 error protection   *
 *                              newly introduced functions are        *
 *                              buffer_CRC and recover_CRC_error.     *
 * 2/11/92  W. Joseph Carter    Ported new code to Macintosh.  Most   *
 *                              important fixes involved changing     *
 *                              16-bit ints to long or unsigned in    *
 *                              bit alloc routines for quant of 65535 *
 *                              and passing proper function args.     *
 *                              Removed "Other Joint Stereo" option   *
 *                              and made bitrate be total channel     *
 *                              bitrate, irrespective of the mode.    *
 *                              Fixed many small bugs & reorganized.  *
 * 7/27/92  Juan Pineda         Bug fix in SubBandSynthesis()         *
 *--------------------------------------------------------------------*
 * 6/14/92  Juan Pineda         Layer III decoding routines added.    *
 *          Amit Gulati         Follows CD 3-11172 rev2.  Contains    *
 *                              hacks deal with evolving available    *
 *                              layerIII bitstreams.  Some (minor)    *
 *                              modification of prior LI&II code.     *
 * 10/25/92 Amit Gulati         Updated layerIII routines. Added code *
 *                              for subblock_gain, switched block     *
 *                              modes, stereo pre-processing.         *
 *                              Corrected sign bits for huffman       *
 *                              decoding of quadruples region and     *
 *                              adjusted gain factor in III_dequant.  *
 * 11/21/92 Amit Gulati         Several layerIII bugs fixed.          *
 * 12/15/92 Amit Gulati         Corrected reordering (indexing)       *
 *          Stan Searing        within IMDCT routine.                 *
 *  8/24/93 Masahiro Iwadare    Included IS modification in Layer III.*
 *                              Changed for 1 pass decoding.          *
 *  9/07/93 Toshiyuki Ishino    Integrated Layer III with Ver 3.9.    *
 *--------------------------------------------------------------------*
 * 11/20/93 Masahiro Iwadare    Integrated Layer III with Ver 4.0.    *
 *--------------------------------------------------------------------*
 *  7/14/94 Juergen Koller      Bug fixes in Layer III code           *
 *--------------------------------------------------------------------*
 * 08/11/94 IIS                 Bug fixes in Layer III code           *
 *--------------------------------------------------------------------*
 * 9/20/94  Davis Pan           Modification to avoid premature       *
 *                              synchword detection                   *
 *--------------------------------------------------------------------*
 * 11/09/94 Jon Rowlands        Merged premature synchword detection  *
 *                              fix into layer III code version       *
 **********************************************************************/

#include        "common.h"
#include        "decoder.h"
#include        "huffman.h"

/***************************************************************
/*
/* This module contains the core of the decoder ie all the
/* computational routines. (Layer I and II only)
/* Functions are common to both layer unless
/* otherwise specified.
/*
/***************************************************************/

/*****************************************************************
/*
/* The following routines decode the system information
/*
/****************************************************************/

/************ Layer I, Layer II & Layer III ******************/

void decode_info(bs, fr_ps)
Bit_stream_struc *bs;
frame_params *fr_ps;
{
    unsigned int bits;

    layer *hdr = fr_ps->header;
    while( (bits=getbits(bs,8)) == 255); /*discard leading 0xFF's of syncword*/
    hdr->bitrate_index = bits & 0xF;
    bits = bits >> 4;
    switch(bits) {
      case 0:
         hdr->version = 0;
         hdr->lay = 4;
         hdr->error_protection = 1;
         break;
      case 1:
         hdr->version = 0;
         hdr->lay = 4;
         hdr->error_protection = 0;
         break;
      case 2:
         hdr->version = 0;
         hdr->lay = 3;
         hdr->error_protection = 1;
         break;
      case 3:
         hdr->version = 0;
         hdr->lay = 3;
         hdr->error_protection = 0;
         break;
      case 4:
         hdr->version = 0;
         hdr->lay = 2;
         hdr->error_protection = 1;
         break;
      case 5:
         hdr->version = 0;
         hdr->lay = 2;
         hdr->error_protection = 0;
         break;
      case 6:
         hdr->version = 0;
         hdr->lay = 1;
         hdr->error_protection = 1;
         break;
      case 7:
         hdr->version = 0;
         hdr->lay = 1;
         hdr->error_protection = 0;
         break;
      case 8:
         hdr->version = 1;
         hdr->lay = 4;
         hdr->error_protection = 1;
         break;
      case 9:
         hdr->version = 1;
         hdr->lay = 4;
         hdr->error_protection = 0;
         break;
      case 10:
         hdr->version = 1;
         hdr->lay = 3;
         hdr->error_protection = 1;
         break;
      case 11:
         hdr->version = 1;
         hdr->lay = 3;
         hdr->error_protection = 0;
         break;
      case 12:
         hdr->version = 1;
         hdr->lay = 2;
         hdr->error_protection = 1;
         break;
      case 13:
         hdr->version = 1;
         hdr->lay = 2;
         hdr->error_protection = 0;
         break;
      case 14:
         hdr->version = 1;
         hdr->lay = 1;
         hdr->error_protection = 1;
         break;
      default:
         hdr->version = 1;
         hdr->lay = 1;
         hdr->error_protection = 0;
    }
    hdr->sampling_frequency = getbits(bs,2);
    hdr->padding = get1bit(bs);
    hdr->extension = get1bit(bs);
    hdr->mode = getbits(bs,2);
    hdr->mode_ext = getbits(bs,2);
    hdr->copyright = get1bit(bs);
    hdr->original = get1bit(bs);
    hdr->emphasis = getbits(bs,2);
}

/*******************************************************************
/*
/* The bit allocation information is decoded. Layer I
/* has 4 bit per subband whereas Layer II is Ws and bit rate
/* dependent.
/*
/********************************************************************/

/**************************** Layer II *************/

void II_decode_bitalloc(bs, bit_alloc, fr_ps)
Bit_stream_struc *bs;
unsigned int bit_alloc[2][SBLIMIT];
frame_params *fr_ps;
{
    int i,j;
    int stereo = fr_ps->stereo;
    int sblimit = fr_ps->sblimit;
    int jsbound = fr_ps->jsbound;
    al_table *alloc = fr_ps->alloc;

    for (i=0;i<jsbound;i++) for (j=0;j<stereo;j++)
        bit_alloc[j][i] = (char) getbits(bs,(*alloc)[i][0].bits);

    for (i=jsbound;i<sblimit;i++) /* expand to 2 channels */
        bit_alloc[0][i] = bit_alloc[1][i] =
            (char) getbits(bs,(*alloc)[i][0].bits);

    for (i=sblimit;i<SBLIMIT;i++) for (j=0;j<stereo;j++)
        bit_alloc[j][i] = 0;
}

/**************************** Layer I *************/

void I_decode_bitalloc(bs, bit_alloc, fr_ps)
Bit_stream_struc *bs;
unsigned int bit_alloc[2][SBLIMIT];
frame_params *fr_ps;
{
    int i,j;
    int stereo  = fr_ps->stereo;
    int sblimit = fr_ps->sblimit;
    int jsbound = fr_ps->jsbound;
    int b;

    for (i=0;i<jsbound;i++) for (j=0;j<stereo;j++)
        bit_alloc[j][i] = getbits(bs,4);
    for (i=jsbound;i<SBLIMIT;i++) {
        b = getbits(bs,4);
        for (j=0;j<stereo;j++)
            bit_alloc[j][i] = b;
    }
}

/*****************************************************************
/*
/* The following two functions implement the layer I and II
/* format of scale factor extraction. Layer I involves reading
/* 6 bit per subband as scale factor. Layer II requires reading
/* first the scfsi which in turn indicate the number of scale factors
/* transmitted.
/*    Layer I : I_decode_scale
/*   Layer II : II_decode_scale
/*
/****************************************************************/

/************************** Layer I stuff ************************/

void I_decode_scale(bs, bit_alloc, scale_index, fr_ps)
Bit_stream_struc *bs;
unsigned int bit_alloc[2][SBLIMIT], scale_index[2][3][SBLIMIT];
frame_params *fr_ps;
{
    int i,j;
    int stereo = fr_ps->stereo;
    int sblimit = fr_ps->sblimit;

    for (i=0;i<SBLIMIT;i++) for (j=0;j<stereo;j++)
        if (!bit_alloc[j][i])
            scale_index[j][0][i] = SCALE_RANGE-1;
        else                    /* 6 bit per scale factor */
            scale_index[j][0][i] =  getbits(bs,6);

}

/*************************** Layer II stuff ***************************/

void II_decode_scale(bs,scfsi, bit_alloc,scale_index, fr_ps)
Bit_stream_struc *bs;
unsigned int scfsi[2][SBLIMIT], bit_alloc[2][SBLIMIT],
             scale_index[2][3][SBLIMIT];
frame_params *fr_ps;
{
    int i,j;
    int stereo = fr_ps->stereo;
    int sblimit = fr_ps->sblimit;
   
    for (i=0;i<sblimit;i++) for (j=0;j<stereo;j++) /* 2 bit scfsi */
        if (bit_alloc[j][i]) scfsi[j][i] = (char) getbits(bs,2);
    for (i=sblimit;i<SBLIMIT;i++) for (j=0;j<stereo;j++)   
        scfsi[j][i] = 0;

    for (i=0;i<sblimit;i++) for (j=0;j<stereo;j++) {
        if (bit_alloc[j][i])   
            switch (scfsi[j][i]) {
                /* all three scale factors transmitted */
             case 0 : scale_index[j][0][i] = getbits(bs,6);
                scale_index[j][1][i] = getbits(bs,6);
                scale_index[j][2][i] = getbits(bs,6);
                break;
                /* scale factor 1 & 3 transmitted */
             case 1 : scale_index[j][0][i] =
                 scale_index[j][1][i] = getbits(bs,6);
                scale_index[j][2][i] = getbits(bs,6);
                break;
                /* scale factor 1 & 2 transmitted */
             case 3 : scale_index[j][0][i] = getbits(bs,6);
                scale_index[j][1][i] =
                    scale_index[j][2][i] =  getbits(bs,6);
                break;
                /* only one scale factor transmitted */
             case 2 : scale_index[j][0][i] =
                 scale_index[j][1][i] =
                     scale_index[j][2][i] = getbits(bs,6);
                break;
                default : break;
            }
        else {
            scale_index[j][0][i] = scale_index[j][1][i] =
                scale_index[j][2][i] = SCALE_RANGE-1;
        }
    }
    for (i=sblimit;i<SBLIMIT;i++) for (j=0;j<stereo;j++) {
        scale_index[j][0][i] = scale_index[j][1][i] =
            scale_index[j][2][i] = SCALE_RANGE-1;
    }
}

/**************************************************************
/*
/*   The following two routines take care of reading the
/* compressed sample from the bit stream for both layer 1 and
/* layer 2. For layer 1, read the number of bits as indicated
/* by the bit_alloc information. For layer 2, if grouping is
/* indicated for a particular subband, then the sample size has
/* to be read from the bits_group and the merged samples has
/* to be decompose into the three distinct samples. Otherwise,
/* it is the same for as layer one.
/*
/**************************************************************/

/******************************* Layer I stuff ******************/

void I_buffer_sample(bs, sample, bit_alloc, fr_ps)
unsigned int FAR sample[2][3][SBLIMIT];
unsigned int bit_alloc[2][SBLIMIT];
Bit_stream_struc *bs;
frame_params *fr_ps;
{
    int i,j,k;
    int stereo = fr_ps->stereo;
    int sblimit = fr_ps->sblimit;
    int jsbound = fr_ps->jsbound;
    unsigned int s;

    for (i=0;i<jsbound;i++) for (j=0;j<stereo;j++)
        if ( (k = bit_alloc[j][i]) == 0)
            sample[j][0][i] = 0;
        else 
            sample[j][0][i] = (unsigned int) getbits(bs,k+1);
    for (i=jsbound;i<SBLIMIT;i++) {
        if ( (k = bit_alloc[0][i]) == 0)
            s = 0;
        else 
            s = (unsigned int)getbits(bs,k+1);
        for (j=0;j<stereo;j++)
            sample[j][0][i]    = s;
    }
}

/*************************** Layer II stuff ************************/

void II_buffer_sample(bs,sample,bit_alloc,fr_ps)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女一区二区| 亚洲一区二区综合| 日韩一级二级三级精品视频| 9色porny自拍视频一区二区| 国产精品一品二品| 精品一区二区三区视频| 亚洲午夜久久久久久久久久久| 日本一二三四高清不卡| 欧美亚洲综合另类| 91免费国产视频网站| 成人综合婷婷国产精品久久蜜臀| 蜜臀久久99精品久久久久久9| 亚洲第一主播视频| 伊人夜夜躁av伊人久久| 亚洲视频一区二区在线| 国产精品欧美一级免费| 久久久亚洲欧洲日产国码αv| 精品国产不卡一区二区三区| 久久久午夜精品理论片中文字幕| 国产亚洲精品bt天堂精选| 欧美国产精品一区二区三区| 亚洲欧美中日韩| 一区二区三区四区在线免费观看| 亚洲综合色区另类av| 日韩影院在线观看| 韩国av一区二区三区在线观看| 国产成人精品免费看| 99国内精品久久| 欧美日韩一区二区在线视频| 日韩欧美一二三| 久久久精品tv| 亚洲黄一区二区三区| 日韩精品一卡二卡三卡四卡无卡| 国产主播一区二区三区| 成人黄色综合网站| 欧美视频在线一区| 精品1区2区在线观看| 国产精品美女久久久久久久久久久 | 韩国视频一区二区| 成人免费视频视频在线观看免费| 91蜜桃在线免费视频| 在线不卡a资源高清| 国产亚洲精品精华液| 一区二区三区高清| 激情六月婷婷综合| 91福利在线看| 久久久久久久久久久电影| 日韩伦理av电影| 日本成人在线不卡视频| 成人毛片在线观看| 欧美精选午夜久久久乱码6080| 2019国产精品| 亚洲一区在线视频观看| 国产精品亚洲午夜一区二区三区 | 国产亚洲短视频| 亚洲午夜久久久久| 国产精品综合二区| 欧美日韩久久久久久| 中文字幕欧美日韩一区| 日韩二区三区四区| 99久久综合精品| 精品久久久久久久久久久久包黑料 | 亚洲精品一卡二卡| 九一久久久久久| 欧美在线观看视频一区二区| 久久嫩草精品久久久久| 香蕉久久夜色精品国产使用方法| 国产v日产∨综合v精品视频| 91精品国产色综合久久久蜜香臀| 成人免费在线视频观看| 激情五月婷婷综合| 欧美日韩大陆一区二区| 亚洲人精品一区| 国产黄色成人av| 日韩一卡二卡三卡国产欧美| 亚洲一级在线观看| 99久久免费视频.com| 亚洲精品一区二区三区香蕉| 亚洲成人tv网| 91免费视频大全| 中文字幕精品一区二区精品绿巨人 | 国产女人18毛片水真多成人如厕| 图片区小说区国产精品视频| 日本韩国一区二区三区视频| 久久美女艺术照精彩视频福利播放| 日产国产欧美视频一区精品| 欧美三片在线视频观看| 亚洲欧美一区二区三区久本道91 | 91最新地址在线播放| 国产日韩精品一区二区三区在线| 裸体一区二区三区| 欧美日韩成人激情| 亚洲电影激情视频网站| 欧美在线三级电影| 亚洲一区二区偷拍精品| 91麻豆免费观看| 自拍偷拍国产精品| 成年人国产精品| 国产精品乱人伦| 丁香桃色午夜亚洲一区二区三区| 久久午夜老司机| 国内精品不卡在线| 亚洲精品一区二区三区香蕉| 久久99国产精品久久99| 精品成人一区二区| 久久av中文字幕片| 日韩欧美色综合网站| 麻豆精品国产91久久久久久| 日韩亚洲欧美中文三级| 免费观看成人av| 欧美一区二区三区免费在线看 | av中文字幕一区| 亚洲欧美一区二区三区国产精品 | 国产69精品久久久久777| 国产精品色噜噜| 91麻豆免费看| 午夜欧美视频在线观看| 日韩欧美一二三区| 国产成人免费视| 亚洲色图在线看| 欧美日韩国产综合一区二区三区| 午夜精品久久久| 日韩欧美一级在线播放| 国产成人在线影院 | 欧美三级日本三级少妇99| 欧美电影免费观看高清完整版| 五月综合激情婷婷六月色窝| 日韩一级精品视频在线观看| 久久疯狂做爰流白浆xx| 精品国产一区二区在线观看| 九九国产精品视频| 欧美精品电影在线播放| 极品销魂美女一区二区三区| 精品久久久久久无| 国产福利电影一区二区三区| 亚洲国产精品成人综合 | 欧美日韩极品在线观看一区| 亚洲色图19p| 欧美高清hd18日本| 日本免费在线视频不卡一不卡二| 日韩视频一区在线观看| 久久99国产精品久久99| 精品久久久久久久久久久院品网 | 国产成人在线影院| 亚洲少妇屁股交4| 91在线免费播放| 欧美国产视频在线| 色丁香久综合在线久综合在线观看| 亚洲线精品一区二区三区八戒| 欧美一区二区三区成人| 国产91精品久久久久久久网曝门 | 一区二区三区不卡视频| 制服丝袜中文字幕一区| 国产中文字幕精品| 亚洲欧洲www| 亚洲精品一区二区三区在线观看| 高清视频一区二区| 一区二区三区高清在线| 欧美电影免费提供在线观看| 懂色av一区二区三区免费看| 三级欧美在线一区| 国产清纯美女被跳蛋高潮一区二区久久w| 不卡的av在线| 日本不卡的三区四区五区| 欧美mv日韩mv| 欧美亚洲免费在线一区| 国产一区二区三区不卡在线观看 | 久久蜜臀精品av| 91麻豆精东视频| 综合激情成人伊人| 精品va天堂亚洲国产| 91精品福利视频| 国产精品一区二区久久不卡| 亚洲综合免费观看高清在线观看 | 日韩av二区在线播放| 中文字幕一区在线| 日韩欧美一区在线观看| av高清久久久| 狠狠色伊人亚洲综合成人| 一区二区三区在线不卡| 久久亚洲私人国产精品va媚药| 欧美久久久影院| 91原创在线视频| 人人精品人人爱| 一区二区三区精品在线| 国产精品三级电影| 精品日韩一区二区三区| 91久久精品一区二区| 成人午夜在线免费| 免费视频一区二区| 日韩一区欧美二区| 亚洲综合视频网| 中文字幕在线播放不卡一区| 26uuu成人网一区二区三区| 欧美大尺度电影在线| 欧美亚洲图片小说| fc2成人免费人成在线观看播放 | 成人毛片在线观看| 国产美女主播视频一区| 日韩av电影一区|