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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? flac.c

?? 君正早期ucos系統(只有早期的才不沒有打包成庫),MPLAYER,文件系統,圖片解碼,瀏覽,電子書,錄音,想學ucos,識貨的人就下吧 russblock fmradio explore set
?? C
?? 第 1 頁 / 共 2 頁
字號:
                sum += coeffs[j] * decoded[i-j-1];            decoded[i] += sum >> qlevel;        }    }    return 0;}static inline int decode_subframe(FLACContext *s, int channel){    int type, wasted = 0;    int i, tmp;    s->curr_bps = s->bps;    if(channel == 0){        if(s->decorrelation == RIGHT_SIDE)            s->curr_bps++;    }else{        if(s->decorrelation == LEFT_SIDE || s->decorrelation == MID_SIDE)            s->curr_bps++;    }    if (get_bits1(&s->gb))    {        av_log(s->avctx, AV_LOG_ERROR, "invalid subframe padding\n");        return -1;    }    type = get_bits(&s->gb, 6);//    wasted = get_bits1(&s->gb);//    if (wasted)//    {//        while (!get_bits1(&s->gb))//            wasted++;//        if (wasted)//            wasted++;//        s->curr_bps -= wasted;//    }#if 0    wasted= 16 - av_log2(show_bits(&s->gb, 17));    skip_bits(&s->gb, wasted+1);    s->curr_bps -= wasted;#else    if (get_bits1(&s->gb))    {        wasted = 1;        while (!get_bits1(&s->gb))            wasted++;        s->curr_bps -= wasted;        av_log(s->avctx, AV_LOG_DEBUG, "%d wasted bits\n", wasted);    }#endif//FIXME use av_log2 for types    if (type == 0)    {        av_log(s->avctx, AV_LOG_DEBUG, "coding type: constant\n");        tmp = get_sbits(&s->gb, s->curr_bps);        for (i = 0; i < s->blocksize; i++)            s->decoded[channel][i] = tmp;    }    else if (type == 1)    {        av_log(s->avctx, AV_LOG_DEBUG, "coding type: verbatim\n");        for (i = 0; i < s->blocksize; i++)            s->decoded[channel][i] = get_sbits(&s->gb, s->curr_bps);    }    else if ((type >= 8) && (type <= 12))    {//        av_log(s->avctx, AV_LOG_DEBUG, "coding type: fixed\n");        if (decode_subframe_fixed(s, channel, type & ~0x8) < 0)            return -1;    }    else if (type >= 32)    {//        av_log(s->avctx, AV_LOG_DEBUG, "coding type: lpc\n");        if (decode_subframe_lpc(s, channel, (type & ~0x20)+1) < 0)            return -1;    }    else    {        av_log(s->avctx, AV_LOG_ERROR, "invalid coding type\n");        return -1;    }    if (wasted)    {        int i;        for (i = 0; i < s->blocksize; i++)            s->decoded[channel][i] <<= wasted;    }    return 0;}static int decode_frame(FLACContext *s, int alloc_data_size){    int blocksize_code, sample_rate_code, sample_size_code, assignment, i, crc8;    int decorrelation, bps, blocksize, samplerate;    blocksize_code = get_bits(&s->gb, 4);    sample_rate_code = get_bits(&s->gb, 4);    assignment = get_bits(&s->gb, 4); /* channel assignment */    if (assignment < 8 && s->channels == assignment+1)        decorrelation = INDEPENDENT;    else if (assignment >=8 && assignment < 11 && s->channels == 2)        decorrelation = LEFT_SIDE + assignment - 8;    else    {        av_log(s->avctx, AV_LOG_ERROR, "unsupported channel assignment %d (channels=%d)\n", assignment, s->channels);        return -1;    }    sample_size_code = get_bits(&s->gb, 3);    if(sample_size_code == 0)        bps= s->bps;    else if((sample_size_code != 3) && (sample_size_code != 7))        bps = sample_size_table[sample_size_code];    else    {        av_log(s->avctx, AV_LOG_ERROR, "invalid sample size code (%d)\n", sample_size_code);        return -1;    }    if (get_bits1(&s->gb))    {        av_log(s->avctx, AV_LOG_ERROR, "broken stream, invalid padding\n");        return -1;    }    if(get_utf8(&s->gb) < 0){        av_log(s->avctx, AV_LOG_ERROR, "utf8 fscked\n");        return -1;    }#if 0    if (/*((blocksize_code == 6) || (blocksize_code == 7)) &&*/        (s->min_blocksize != s->max_blocksize)){    }else{    }#endif    if (blocksize_code == 0)        blocksize = s->min_blocksize;    else if (blocksize_code == 6)        blocksize = get_bits(&s->gb, 8)+1;    else if (blocksize_code == 7)        blocksize = get_bits(&s->gb, 16)+1;    else        blocksize = blocksize_table[blocksize_code];    if(blocksize > s->max_blocksize){        av_log(s->avctx, AV_LOG_ERROR, "blocksize %d > %d\n", blocksize, s->max_blocksize);        return -1;    }    if(blocksize * s->channels * sizeof(int16_t) > alloc_data_size)        return -1;    if (sample_rate_code == 0){        samplerate= s->samplerate;    }else if ((sample_rate_code > 3) && (sample_rate_code < 12))        samplerate = sample_rate_table[sample_rate_code];    else if (sample_rate_code == 12)        samplerate = get_bits(&s->gb, 8) * 1000;    else if (sample_rate_code == 13)        samplerate = get_bits(&s->gb, 16);    else if (sample_rate_code == 14)        samplerate = get_bits(&s->gb, 16) * 10;    else{        av_log(s->avctx, AV_LOG_ERROR, "illegal sample rate code %d\n", sample_rate_code);        return -1;    }    skip_bits(&s->gb, 8);    crc8= av_crc(av_crc07, 0, s->gb.buffer, get_bits_count(&s->gb)/8);    if(crc8){        av_log(s->avctx, AV_LOG_ERROR, "header crc mismatch crc=%2X\n", crc8);        return -1;    }    s->blocksize    = blocksize;    s->samplerate   = samplerate;    s->bps          = bps;    s->decorrelation= decorrelation;//    dump_headers(s);    /* subframes */    for (i = 0; i < s->channels; i++)    {//        av_log(s->avctx, AV_LOG_DEBUG, "decoded: %x residual: %x\n", s->decoded[i], s->residual[i]);        if (decode_subframe(s, i) < 0)            return -1;    }    align_get_bits(&s->gb);    /* frame footer */    skip_bits(&s->gb, 16); /* data crc */    return 0;}static int flac_decode_frame(AVCodecContext *avctx,                            void *data, int *data_size,                            uint8_t *buf, int buf_size){    FLACContext *s = avctx->priv_data;    int tmp = 0, i, j = 0, input_buf_size = 0;    int16_t *samples = data;    int alloc_data_size= *data_size;    *data_size=0;    if(s->max_framesize == 0){        s->max_framesize= 65536; // should hopefully be enough for the first header        s->bitstream= av_fast_realloc(s->bitstream, &s->allocated_bitstream_size, s->max_framesize);    }    if(1 && s->max_framesize){//FIXME truncated            buf_size= FFMAX(FFMIN(buf_size, s->max_framesize - s->bitstream_size), 0);            input_buf_size= buf_size;            if(s->bitstream_index + s->bitstream_size + buf_size > s->allocated_bitstream_size){//                printf("memmove\n");                memmove(s->bitstream, &s->bitstream[s->bitstream_index], s->bitstream_size);                s->bitstream_index=0;            }            memcpy(&s->bitstream[s->bitstream_index + s->bitstream_size], buf, buf_size);            buf= &s->bitstream[s->bitstream_index];            buf_size += s->bitstream_size;            s->bitstream_size= buf_size;            if(buf_size < s->max_framesize){//                printf("wanna more data ...\n");                return input_buf_size;            }    }    init_get_bits(&s->gb, buf, buf_size*8);    if (!metadata_parse(s))    {        tmp = show_bits(&s->gb, 16);        if(tmp != 0xFFF8){            av_log(s->avctx, AV_LOG_ERROR, "FRAME HEADER not here\n");            while(get_bits_count(&s->gb)/8+2 < buf_size && show_bits(&s->gb, 16) != 0xFFF8)                skip_bits(&s->gb, 8);            goto end; // we may not have enough bits left to decode a frame, so try next time        }        skip_bits(&s->gb, 16);        if (decode_frame(s, alloc_data_size) < 0){            av_log(s->avctx, AV_LOG_ERROR, "decode_frame() failed\n");            s->bitstream_size=0;            s->bitstream_index=0;            return -1;        }    }#if 0    /* fix the channel order here */    if (s->order == MID_SIDE)    {        short *left = samples;        short *right = samples + s->blocksize;        for (i = 0; i < s->blocksize; i += 2)        {            uint32_t x = s->decoded[0][i];            uint32_t y = s->decoded[0][i+1];            right[i] = x - (y / 2);            left[i] = right[i] + y;        }        *data_size = 2 * s->blocksize;    }    else    {    for (i = 0; i < s->channels; i++)    {        switch(s->order)        {            case INDEPENDENT:                for (j = 0; j < s->blocksize; j++)                    samples[(s->blocksize*i)+j] = s->decoded[i][j];                break;            case LEFT_SIDE:            case RIGHT_SIDE:                if (i == 0)                    for (j = 0; j < s->blocksize; j++)                        samples[(s->blocksize*i)+j] = s->decoded[0][j];                else                    for (j = 0; j < s->blocksize; j++)                        samples[(s->blocksize*i)+j] = s->decoded[0][j] - s->decoded[i][j];                break;//            case MID_SIDE://                av_log(s->avctx, AV_LOG_DEBUG, "mid-side unsupported\n");        }        *data_size += s->blocksize;    }    }#else#define DECORRELATE(left, right)\            assert(s->channels == 2);\            for (i = 0; i < s->blocksize; i++)\            {\                int a= s->decoded[0][i];\                int b= s->decoded[1][i];\                *samples++ = ((left)  << (24 - s->bps)) >> 8;\                *samples++ = ((right) << (24 - s->bps)) >> 8;\            }\            break;    switch(s->decorrelation)    {        case INDEPENDENT:            for (j = 0; j < s->blocksize; j++)            {                for (i = 0; i < s->channels; i++)                    *samples++ = (s->decoded[i][j] << (24 - s->bps)) >> 8;            }            break;        case LEFT_SIDE:            DECORRELATE(a,a-b)        case RIGHT_SIDE:            DECORRELATE(a+b,b)        case MID_SIDE:            DECORRELATE( (a-=b>>1) + b, a)    }#endif    *data_size = (int8_t *)samples - (int8_t *)data;//    av_log(s->avctx, AV_LOG_DEBUG, "data size: %d\n", *data_size);//    s->last_blocksize = s->blocksize;end:    i= (get_bits_count(&s->gb)+7)/8;;    if(i > buf_size){        av_log(s->avctx, AV_LOG_ERROR, "overread: %d\n", i - buf_size);        s->bitstream_size=0;        s->bitstream_index=0;        return -1;    }    if(s->bitstream_size){        s->bitstream_index += i;        s->bitstream_size  -= i;        return input_buf_size;    }else        return i;}static int flac_decode_close(AVCodecContext *avctx){    FLACContext *s = avctx->priv_data;    int i;    for (i = 0; i < s->channels; i++)    {        av_freep(&s->decoded[i]);    }    av_freep(&s->bitstream);    return 0;}static void flac_flush(AVCodecContext *avctx){    FLACContext *s = avctx->priv_data;    s->bitstream_size=    s->bitstream_index= 0;}AVCodec flac_decoder = {    "flac",    CODEC_TYPE_AUDIO,    CODEC_ID_FLAC,    sizeof(FLACContext),    flac_decode_init,    NULL,    flac_decode_close,    flac_decode_frame,    .flush= flac_flush,};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区在线播放| 中国av一区二区三区| 丁香网亚洲国际| 亚洲一二三四在线| 国产日产欧美一区| 欧美一区二区三区婷婷月色| 不卡av电影在线播放| 奇米888四色在线精品| 亚洲黄色免费电影| 国产女同互慰高潮91漫画| 91麻豆精品国产91| 91蜜桃视频在线| 国产高清久久久| 美女在线视频一区| 亚洲综合免费观看高清在线观看| 国产亚洲短视频| 精品国产91洋老外米糕| 欧美日韩一本到| 一本大道久久a久久精品综合| 国产精品伊人色| 美女看a上一区| 日本aⅴ免费视频一区二区三区| 一区二区成人在线| 中文字幕一区在线| 国产精品麻豆欧美日韩ww| 精品粉嫩超白一线天av| 日韩一区二区免费高清| 欧美日韩久久一区| 欧美影院一区二区三区| av高清久久久| 91亚洲精品久久久蜜桃网站| 成人精品视频一区二区三区| 国产一区二区三区综合| 韩国理伦片一区二区三区在线播放| 天天综合网 天天综合色| 亚洲一区二区三区中文字幕在线 | 色诱亚洲精品久久久久久| 粉嫩av亚洲一区二区图片| 狠狠狠色丁香婷婷综合久久五月| 青青青爽久久午夜综合久久午夜| 国产精品国产馆在线真实露脸 | 91超碰这里只有精品国产| 欧美色图在线观看| 欧美日精品一区视频| 欧美色综合久久| 欧美一区二区三区四区视频| 欧美精品在线一区二区| 欧美一区二区在线看| 日韩一二三区不卡| 欧美精品一区二区三区蜜桃| 久久综合久久鬼色| 国产女人aaa级久久久级 | 亚洲精品欧美在线| 亚洲综合一区二区| 日本欧美在线看| 久久精品72免费观看| 精品一区二区在线视频| 国产丶欧美丶日本不卡视频| 成人网在线免费视频| 成人国产电影网| 欧美最新大片在线看| 91精品午夜视频| 久久在线免费观看| 国产精品女人毛片| 一区二区高清在线| 看片网站欧美日韩| 成人精品国产一区二区4080 | 国产精品乱码人人做人人爱| 中文字幕 久热精品 视频在线| 极品美女销魂一区二区三区| 国产激情视频一区二区在线观看 | 麻豆精品久久久| 国产在线不卡视频| www.一区二区| 538在线一区二区精品国产| 欧美xingq一区二区| 国产精品久久久久久久久晋中| 一区二区三区在线免费| 男人的天堂亚洲一区| 99久久综合色| 91精品国产综合久久久久| 亚洲国产精品av| 精品中文字幕一区二区小辣椒| 国产成人超碰人人澡人人澡| 在线免费观看日本欧美| 欧美精品一区二区三区蜜桃视频 | 久久久亚洲国产美女国产盗摄| 亚洲欧美日韩国产手机在线| 三级一区在线视频先锋 | 亚洲国产精品黑人久久久| 亚洲资源中文字幕| 国产美女视频一区| 欧美另类变人与禽xxxxx| 国产人成一区二区三区影院| 亚洲国产精品自拍| 国产成人欧美日韩在线电影| 欧美日韩国产综合视频在线观看| 久久精品一二三| 亚洲电影第三页| 国产suv精品一区二区6| 宅男噜噜噜66一区二区66| 亚洲视频小说图片| 国产一区视频导航| 欧美卡1卡2卡| 国产精品久久久久久户外露出| 日韩精品福利网| 欧洲人成人精品| 最新日韩在线视频| 国产激情视频一区二区在线观看 | 亚洲国产成人91porn| jizz一区二区| 久久久亚洲高清| 久久激情五月激情| 欧美日韩亚州综合| 亚洲免费观看高清完整版在线观看| 激情六月婷婷综合| 日韩一二三四区| 日本sm残虐另类| 正在播放一区二区| 日韩av午夜在线观看| 欧美午夜寂寞影院| 亚洲主播在线播放| 91偷拍与自偷拍精品| 国产精品国产自产拍在线| 国产高清亚洲一区| 国产亚洲自拍一区| 国产一区二区看久久| 欧美va在线播放| 精品在线免费观看| 精品国产一区二区三区av性色 | 中文字幕免费不卡| 国产精品99久久久久久久vr| 久久伊99综合婷婷久久伊| 久久精品国产澳门| 日韩欧美亚洲国产精品字幕久久久| 午夜不卡av免费| 欧美精品在线观看一区二区| 婷婷成人激情在线网| 制服丝袜日韩国产| 美女mm1313爽爽久久久蜜臀| 欧美一区二区大片| 国产在线日韩欧美| 久久久久国产精品人| 成人中文字幕电影| 国产精品久久久久影院| 91视频在线观看| 亚洲一区免费视频| 91精品国产麻豆国产自产在线| 日本强好片久久久久久aaa| 日韩精品一区国产麻豆| 国产一区二区精品久久99| 国产色产综合色产在线视频| 成人免费视频一区二区| 亚洲色图.com| 欧美日韩精品电影| 久久精品国产在热久久| 久久精品在线观看| www.欧美日韩| 亚洲大片一区二区三区| 精品免费视频一区二区| 高清av一区二区| 一区二区三区成人在线视频| 欧美福利视频导航| 精品一区中文字幕| 1000精品久久久久久久久| 一本色道久久加勒比精品| 2021国产精品久久精品| 精品美女一区二区| 日韩欧美成人一区| 国产精品久久久久久久浪潮网站| 国产亚洲制服色| 国产三区在线成人av| 亚洲精品综合在线| 亚洲色欲色欲www在线观看| 亚洲国产aⅴ天堂久久| 日韩精品乱码免费| 99久久777色| 欧美一级搡bbbb搡bbbb| 国产精品福利电影一区二区三区四区| 综合亚洲深深色噜噜狠狠网站| 天天色综合成人网| 精品午夜久久福利影院| 欧洲精品视频在线观看| 欧美xxxxxxxx| 日韩电影一区二区三区| 色婷婷亚洲精品| 精品国产伦一区二区三区观看方式| 成人欧美一区二区三区视频网页| 国内精品久久久久影院色| 欧美日本乱大交xxxxx| 亚洲欧美激情视频在线观看一区二区三区| 国产传媒日韩欧美成人| 在线电影国产精品| 国产精品久久久久久久裸模| 男女性色大片免费观看一区二区 | 一区二区三区中文字幕精品精品 | 99久久精品免费看国产| 欧美国产综合一区二区| 国产传媒久久文化传媒| 亚洲成a人v欧美综合天堂|