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

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

?? flac.c.svn-base

?? mediastreamer2是開源的網絡傳輸媒體流的庫
?? SVN-BASE
?? 第 1 頁 / 共 2 頁
字號:
            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_crc_get_table(AV_CRC_8_ATM), 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,                            const 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 & 0xFFFE) != 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) & 0xFFFE) != 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一区二区| 图片区日韩欧美亚洲| 午夜精品福利视频网站| 亚洲大片精品永久免费| 日韩激情中文字幕| 久久99热99| 成人黄色片在线观看| 成人av网址在线观看| 91麻豆免费视频| 欧美综合天天夜夜久久| 欧美欧美欧美欧美首页| 欧美一区二区三区的| 久久久久久久网| 亚洲丝袜另类动漫二区| 亚洲永久精品大片| 日韩高清电影一区| 国模套图日韩精品一区二区| 国产乱子轮精品视频| 97se亚洲国产综合自在线| 在线一区二区三区做爰视频网站| 欧美日韩专区在线| 日韩精品自拍偷拍| 国产精品福利影院| 一区二区三区成人在线视频| 久久精品二区亚洲w码| 成人一区二区三区| 久久综合九色综合97婷婷| 国产成人小视频| 国产露脸91国语对白| 91色视频在线| 日韩欧美一区二区不卡| 国产女人18毛片水真多成人如厕| 亚洲成人av一区二区三区| 视频在线观看一区| 97超碰欧美中文字幕| 亚洲色欲色欲www| 欧美性猛交xxxx黑人交| 亚洲成人动漫在线免费观看| 欧美日韩不卡一区| 美女国产一区二区三区| 欧美成人三级电影在线| 国产麻豆精品95视频| 中文字幕精品一区二区精品绿巨人| 成人影视亚洲图片在线| 亚洲理论在线观看| 777奇米四色成人影色区| 极品美女销魂一区二区三区免费| 精品成人在线观看| fc2成人免费人成在线观看播放| 国产欧美一区二区精品性色 | 亚洲国产欧美在线人成| 欧美一区二区三区四区久久 | 欧美午夜电影在线播放| 免费在线视频一区| 国产精品久久免费看| 欧美日韩欧美一区二区| 国产最新精品免费| 亚洲天堂成人网| 日韩亚洲欧美在线观看| 成人综合在线网站| 亚洲国产乱码最新视频| 国产亚洲美州欧州综合国| 97国产一区二区| 久久草av在线| 一区二区三区影院| 日韩欧美一区在线| 97久久精品人人爽人人爽蜜臀| 三级久久三级久久久| 国产偷v国产偷v亚洲高清| 欧美日韩国产免费| 成人视屏免费看| 日韩国产高清影视| 亚洲精品美腿丝袜| 精品卡一卡二卡三卡四在线| 色中色一区二区| 激情五月播播久久久精品| 亚洲欧美一区二区三区国产精品 | 欧美亚洲一区三区| 成人黄色网址在线观看| 免费xxxx性欧美18vr| |精品福利一区二区三区| 日韩免费观看高清完整版| 色综合久久综合网97色综合| 国产乱码精品一品二品| 午夜久久久久久久久| 国产精品高潮呻吟久久| 精品久久免费看| 正在播放一区二区| 日本精品一区二区三区高清 | 久久99国产精品麻豆| 亚洲与欧洲av电影| 亚洲免费观看高清完整| 国产精品美日韩| www日韩大片| 日韩欧美美女一区二区三区| 欧美视频中文一区二区三区在线观看| 国产91富婆露脸刺激对白| 久久99精品久久久久久| 日本不卡一区二区三区高清视频| 亚洲一区二区四区蜜桃| 亚洲少妇30p| 亚洲日本欧美天堂| 国产精品久久午夜| 亚洲图片激情小说| 国产精品久久免费看| 国产片一区二区三区| 国产丝袜在线精品| 2022国产精品视频| 精品久久久久99| 亚洲精品一区二区三区香蕉| 91精品婷婷国产综合久久| 欧美情侣在线播放| 91精品在线免费观看| 欧美日韩久久久| 欧美一区日本一区韩国一区| 欧美日韩aaa| 日韩一区二区三区免费观看| 91精品国产综合久久国产大片| 91精品国产乱| 精品久久久久久久久久久久久久久久久| 日韩欧美二区三区| www一区二区| 中文字幕字幕中文在线中不卡视频| 中文字幕五月欧美| 亚洲曰韩产成在线| 免费视频最近日韩| 国产精品中文有码| aaa国产一区| 色婷婷av一区二区三区大白胸| 欧美日韩中文字幕一区| 日韩午夜在线播放| 久久综合久久99| 亚洲色图19p| 视频一区二区三区在线| 久久久久国产免费免费| 成人免费看的视频| 91视频免费播放| 在线电影国产精品| 欧美精品一区二区三区一线天视频| 国产亚洲综合性久久久影院| 亚洲人精品午夜| 日韩va亚洲va欧美va久久| 国产乱子伦视频一区二区三区 | 国产九色sp调教91| 99精品在线观看视频| 欧美精品一级二级| 国产日韩欧美激情| 亚洲成人先锋电影| 成人午夜视频在线观看| 在线观看91av| 亚洲视频一区二区免费在线观看| 日韩激情视频在线观看| 波多野结衣91| 26uuu另类欧美亚洲曰本| 亚洲综合色自拍一区| 国产精品亚洲综合一区在线观看| 欧美午夜一区二区三区| 久久精品视频一区| 日韩有码一区二区三区| 99麻豆久久久国产精品免费| 日韩欧美在线网站| 夜夜嗨av一区二区三区四季av| 国产白丝精品91爽爽久久| 91精品久久久久久久99蜜桃| 亚洲狼人国产精品| 成人综合日日夜夜| 欧美电视剧免费全集观看| 亚洲第一福利一区| 91在线观看污| 久久久久久综合| 三级欧美韩日大片在线看| 91免费在线视频观看| 久久精品一区二区三区不卡牛牛| 五月婷婷另类国产| 在线观看日韩高清av| 中文字幕在线观看不卡视频| 精品写真视频在线观看| 69堂成人精品免费视频| 中文字幕日韩欧美一区二区三区| 国内欧美视频一区二区 | 国产精品毛片久久久久久| 黄页网站大全一区二区| 欧美一区二区三区影视| 亚洲国产一区二区在线播放| 白白色亚洲国产精品| 日本一区二区三区电影| 国模无码大尺度一区二区三区| 在线综合视频播放| 亚洲成av人影院在线观看网| 色狠狠色噜噜噜综合网| 亚洲图片激情小说| 97久久精品人人爽人人爽蜜臀 | 91性感美女视频| 中文字幕一区二区三区在线播放| 成人性生交大片| 中文字幕一区二区三区精华液| 成人午夜在线免费| 国产精品视频麻豆|