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

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

?? adpcm.c.svn-base

?? mediastreamer2是開源的網(wǎng)絡(luò)傳輸媒體流的庫
?? SVN-BASE
?? 第 1 頁 / 共 4 頁
字號(hào):
    case CODEC_ID_ADPCM_EA_R1:    case CODEC_ID_ADPCM_EA_R2:    case CODEC_ID_ADPCM_EA_R3: {        /* channel numbering           2chan: 0=fl, 1=fr           4chan: 0=fl, 1=rl, 2=fr, 3=rr           6chan: 0=fl, 1=c,  2=fr, 3=rl,  4=rr, 5=sub */        const int big_endian = avctx->codec->id == CODEC_ID_ADPCM_EA_R3;        int32_t previous_sample, current_sample, next_sample;        int32_t coeff1, coeff2;        uint8_t shift;        unsigned int channel;        uint16_t *samplesC;        const uint8_t *srcC;        samples_in_chunk = (big_endian ? bytestream_get_be32(&src)                                       : bytestream_get_le32(&src)) / 28;        if (samples_in_chunk > UINT32_MAX/(28*avctx->channels) ||            28*samples_in_chunk*avctx->channels > samples_end-samples) {            src += buf_size - 4;            break;        }        for (channel=0; channel<avctx->channels; channel++) {            srcC = src + (big_endian ? bytestream_get_be32(&src)                                     : bytestream_get_le32(&src))                       + (avctx->channels-channel-1) * 4;            samplesC = samples + channel;            if (avctx->codec->id == CODEC_ID_ADPCM_EA_R1) {                current_sample  = (int16_t)bytestream_get_le16(&srcC);                previous_sample = (int16_t)bytestream_get_le16(&srcC);            } else {                current_sample  = c->status[channel].predictor;                previous_sample = c->status[channel].prev_sample;            }            for (count1=0; count1<samples_in_chunk; count1++) {                if (*srcC == 0xEE) {  /* only seen in R2 and R3 */                    srcC++;                    current_sample  = (int16_t)bytestream_get_be16(&srcC);                    previous_sample = (int16_t)bytestream_get_be16(&srcC);                    for (count2=0; count2<28; count2++) {                        *samplesC = (int16_t)bytestream_get_be16(&srcC);                        samplesC += avctx->channels;                    }                } else {                    coeff1 = ea_adpcm_table[ (*srcC>>4) & 0x0F     ];                    coeff2 = ea_adpcm_table[((*srcC>>4) & 0x0F) + 4];                    shift = (*srcC++ & 0x0F) + 8;                    for (count2=0; count2<28; count2++) {                        if (count2 & 1)                            next_sample = ((*srcC++ & 0x0F) << 28) >> shift;                        else                            next_sample = ((*srcC   & 0xF0) << 24) >> shift;                        next_sample += (current_sample  * coeff1) +                                       (previous_sample * coeff2);                        next_sample = av_clip_int16(next_sample >> 8);                        previous_sample = current_sample;                        current_sample  = next_sample;                        *samplesC = current_sample;                        samplesC += avctx->channels;                    }                }            }            if (avctx->codec->id != CODEC_ID_ADPCM_EA_R1) {                c->status[channel].predictor   = current_sample;                c->status[channel].prev_sample = previous_sample;            }        }        src = src + buf_size - (4 + 4*avctx->channels);        samples += 28 * samples_in_chunk * avctx->channels;        break;    }    case CODEC_ID_ADPCM_EA_XAS:        if (samples_end-samples < 32*4*avctx->channels            || buf_size < (4+15)*4*avctx->channels) {            src += buf_size;            break;        }        for (channel=0; channel<avctx->channels; channel++) {            int coeff[2][4], shift[4];            short *s2, *s = &samples[channel];            for (n=0; n<4; n++, s+=32*avctx->channels) {                for (i=0; i<2; i++)                    coeff[i][n] = ea_adpcm_table[(src[0]&0x0F)+4*i];                shift[n] = (src[2]&0x0F) + 8;                for (s2=s, i=0; i<2; i++, src+=2, s2+=avctx->channels)                    s2[0] = (src[0]&0xF0) + (src[1]<<8);            }            for (m=2; m<32; m+=2) {                s = &samples[m*avctx->channels + channel];                for (n=0; n<4; n++, src++, s+=32*avctx->channels) {                    for (s2=s, i=0; i<8; i+=4, s2+=avctx->channels) {                        int level = ((*src & (0xF0>>i)) << (24+i)) >> shift[n];                        int pred  = s2[-1*avctx->channels] * coeff[0][n]                                  + s2[-2*avctx->channels] * coeff[1][n];                        s2[0] = av_clip_int16((level + pred + 0x80) >> 8);                    }                }            }        }        samples += 32*4*avctx->channels;        break;    case CODEC_ID_ADPCM_IMA_AMV:    case CODEC_ID_ADPCM_IMA_SMJPEG:        c->status[0].predictor = (int16_t)bytestream_get_le16(&src);        c->status[0].step_index = bytestream_get_le16(&src);        if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV)            src+=4;        while (src < buf + buf_size) {            char hi, lo;            lo = *src & 0x0F;            hi = (*src >> 4) & 0x0F;            if (avctx->codec->id == CODEC_ID_ADPCM_IMA_AMV)                FFSWAP(char, hi, lo);            *samples++ = adpcm_ima_expand_nibble(&c->status[0],                lo, 3);            *samples++ = adpcm_ima_expand_nibble(&c->status[0],                hi, 3);            src++;        }        break;    case CODEC_ID_ADPCM_CT:        while (src < buf + buf_size) {            if (st) {                *samples++ = adpcm_ct_expand_nibble(&c->status[0],                    (src[0] >> 4) & 0x0F);                *samples++ = adpcm_ct_expand_nibble(&c->status[1],                    src[0] & 0x0F);            } else {                *samples++ = adpcm_ct_expand_nibble(&c->status[0],                    (src[0] >> 4) & 0x0F);                *samples++ = adpcm_ct_expand_nibble(&c->status[0],                    src[0] & 0x0F);            }            src++;        }        break;    case CODEC_ID_ADPCM_SBPRO_4:    case CODEC_ID_ADPCM_SBPRO_3:    case CODEC_ID_ADPCM_SBPRO_2:        if (!c->status[0].step_index) {            /* the first byte is a raw sample */            *samples++ = 128 * (*src++ - 0x80);            if (st)              *samples++ = 128 * (*src++ - 0x80);            c->status[0].step_index = 1;        }        if (avctx->codec->id == CODEC_ID_ADPCM_SBPRO_4) {            while (src < buf + buf_size) {                *samples++ = adpcm_sbpro_expand_nibble(&c->status[0],                    (src[0] >> 4) & 0x0F, 4, 0);                *samples++ = adpcm_sbpro_expand_nibble(&c->status[st],                    src[0] & 0x0F, 4, 0);                src++;            }        } else if (avctx->codec->id == CODEC_ID_ADPCM_SBPRO_3) {            while (src < buf + buf_size && samples + 2 < samples_end) {                *samples++ = adpcm_sbpro_expand_nibble(&c->status[0],                    (src[0] >> 5) & 0x07, 3, 0);                *samples++ = adpcm_sbpro_expand_nibble(&c->status[0],                    (src[0] >> 2) & 0x07, 3, 0);                *samples++ = adpcm_sbpro_expand_nibble(&c->status[0],                    src[0] & 0x03, 2, 0);                src++;            }        } else {            while (src < buf + buf_size && samples + 3 < samples_end) {                *samples++ = adpcm_sbpro_expand_nibble(&c->status[0],                    (src[0] >> 6) & 0x03, 2, 2);                *samples++ = adpcm_sbpro_expand_nibble(&c->status[st],                    (src[0] >> 4) & 0x03, 2, 2);                *samples++ = adpcm_sbpro_expand_nibble(&c->status[0],                    (src[0] >> 2) & 0x03, 2, 2);                *samples++ = adpcm_sbpro_expand_nibble(&c->status[st],                    src[0] & 0x03, 2, 2);                src++;            }        }        break;    case CODEC_ID_ADPCM_SWF:    {        GetBitContext gb;        const int *table;        int k0, signmask, nb_bits, count;        int size = buf_size*8;        init_get_bits(&gb, buf, size);        //read bits & initial values        nb_bits = get_bits(&gb, 2)+2;        //av_log(NULL,AV_LOG_INFO,"nb_bits: %d\n", nb_bits);        table = swf_index_tables[nb_bits-2];        k0 = 1 << (nb_bits-2);        signmask = 1 << (nb_bits-1);        while (get_bits_count(&gb) <= size - 22*avctx->channels) {            for (i = 0; i < avctx->channels; i++) {                *samples++ = c->status[i].predictor = get_sbits(&gb, 16);                c->status[i].step_index = get_bits(&gb, 6);            }            for (count = 0; get_bits_count(&gb) <= size - nb_bits*avctx->channels && count < 4095; count++) {                int i;                for (i = 0; i < avctx->channels; i++) {                    // similar to IMA adpcm                    int delta = get_bits(&gb, nb_bits);                    int step = step_table[c->status[i].step_index];                    long vpdiff = 0; // vpdiff = (delta+0.5)*step/4                    int k = k0;                    do {                        if (delta & k)                            vpdiff += step;                        step >>= 1;                        k >>= 1;                    } while(k);                    vpdiff += step;                    if (delta & signmask)                        c->status[i].predictor -= vpdiff;                    else                        c->status[i].predictor += vpdiff;                    c->status[i].step_index += table[delta & (~signmask)];                    c->status[i].step_index = av_clip(c->status[i].step_index, 0, 88);                    c->status[i].predictor = av_clip_int16(c->status[i].predictor);                    *samples++ = c->status[i].predictor;                    if (samples >= samples_end) {                        av_log(avctx, AV_LOG_ERROR, "allocated output buffer is too small\n");                        return -1;                    }                }            }        }        src += buf_size;        break;    }    case CODEC_ID_ADPCM_YAMAHA:        while (src < buf + buf_size) {            if (st) {                *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],                        src[0] & 0x0F);                *samples++ = adpcm_yamaha_expand_nibble(&c->status[1],                        (src[0] >> 4) & 0x0F);            } else {                *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],                        src[0] & 0x0F);                *samples++ = adpcm_yamaha_expand_nibble(&c->status[0],                        (src[0] >> 4) & 0x0F);            }            src++;        }        break;    case CODEC_ID_ADPCM_THP:    {        int table[2][16];        unsigned int samplecnt;        int prev[2][2];        int ch;        if (buf_size < 80) {            av_log(avctx, AV_LOG_ERROR, "frame too small\n");            return -1;        }        src+=4;        samplecnt = bytestream_get_be32(&src);        for (i = 0; i < 32; i++)            table[0][i] = (int16_t)bytestream_get_be16(&src);        /* Initialize the previous sample.  */        for (i = 0; i < 4; i++)            prev[0][i] = (int16_t)bytestream_get_be16(&src);        if (samplecnt >= (samples_end - samples) /  (st + 1)) {            av_log(avctx, AV_LOG_ERROR, "allocated output buffer is too small\n");            return -1;        }        for (ch = 0; ch <= st; ch++) {            samples = (unsigned short *) data + ch;            /* Read in every sample for this channel.  */            for (i = 0; i < samplecnt / 14; i++) {                int index = (*src >> 4) & 7;                unsigned int exp = 28 - (*src++ & 15);                int factor1 = table[ch][index * 2];                int factor2 = table[ch][index * 2 + 1];                /* Decode 14 samples.  */                for (n = 0; n < 14; n++) {                    int32_t sampledat;                    if(n&1) sampledat=  *src++    <<28;                    else    sampledat= (*src&0xF0)<<24;                    sampledat = ((prev[ch][0]*factor1                                + prev[ch][1]*factor2) >> 11) + (sampledat>>exp);                    *samples = av_clip_int16(sampledat);                    prev[ch][1] = prev[ch][0];                    prev[ch][0] = *samples++;                    /* In case of stereo, skip one sample, this sample                       is for the other channel.  */                    samples += st;                }            }        }        /* In the previous loop, in case stereo is used, samples is           increased exactly one time too often.  */        samples -= st;        break;    }    default:        return -1;    }    *data_size = (uint8_t *)samples - (uint8_t *)data;    return src - buf;}#ifdef CONFIG_ENCODERS#define ADPCM_ENCODER(id,name)                  \AVCodec name ## _encoder = {                    \    #name,                                      \    CODEC_TYPE_AUDIO,                           \    id,                                         \    sizeof(ADPCMContext),                       \    adpcm_encode_init,                          \    adpcm_encode_frame,                         \    adpcm_encode_close,                         \    NULL,                                       \};#else#define ADPCM_ENCODER(id,name)#endif#ifdef CONFIG_DECODERS#define ADPCM_DECODER(id,name)                  \AVCodec name ## _decoder = {                    \    #name,                                      \    CODEC_TYPE_AUDIO,                           \    id,                                         \    sizeof(ADPCMContext),                       \    adpcm_decode_init,                          \    NULL,                                       \    NULL,                                       \    adpcm_decode_frame,                         \};#else#define ADPCM_DECODER(id,name)#endif#define ADPCM_CODEC(id, name)                   \ADPCM_ENCODER(id,name) ADPCM_DECODER(id,name)ADPCM_DECODER(CODEC_ID_ADPCM_4XM, adpcm_4xm);ADPCM_DECODER(CODEC_ID_ADPCM_CT, adpcm_ct);ADPCM_DECODER(CODEC_ID_ADPCM_EA, adpcm_ea);ADPCM_DECODER(CODEC_ID_ADPCM_EA_R1, adpcm_ea_r1);ADPCM_DECODER(CODEC_ID_ADPCM_EA_R2, adpcm_ea_r2);ADPCM_DECODER(CODEC_ID_ADPCM_EA_R3, adpcm_ea_r3);ADPCM_DECODER(CODEC_ID_ADPCM_EA_XAS, adpcm_ea_xas);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_AMV, adpcm_ima_amv);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_EA_EACS, adpcm_ima_ea_eacs);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_EA_SEAD, adpcm_ima_ea_sead);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_SMJPEG, adpcm_ima_smjpeg);ADPCM_CODEC  (CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav);ADPCM_DECODER(CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws);ADPCM_CODEC  (CODEC_ID_ADPCM_MS, adpcm_ms);ADPCM_DECODER(CODEC_ID_ADPCM_SBPRO_4, adpcm_sbpro_4);ADPCM_DECODER(CODEC_ID_ADPCM_SBPRO_3, adpcm_sbpro_3);ADPCM_DECODER(CODEC_ID_ADPCM_SBPRO_2, adpcm_sbpro_2);ADPCM_CODEC  (CODEC_ID_ADPCM_SWF, adpcm_swf);ADPCM_DECODER(CODEC_ID_ADPCM_THP, adpcm_thp);ADPCM_DECODER(CODEC_ID_ADPCM_XA, adpcm_xa);ADPCM_CODEC  (CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩视频不卡| 亚洲蜜臀av乱码久久精品蜜桃| 欧美日韩亚洲另类| 色综合天天综合网天天看片| 成人黄色在线视频| 国产91精品一区二区| 国产福利精品一区| 国产精品一级片在线观看| 国产乱码精品一区二区三区av| 久久电影网电视剧免费观看| 美腿丝袜亚洲一区| 美女视频黄 久久| 国产成人aaaa| 成人av在线资源网站| 不卡av在线免费观看| www.亚洲国产| 一本一道综合狠狠老| 一本色道久久综合亚洲aⅴ蜜桃| 91香蕉视频黄| 欧美日韩在线播放一区| 91精品国产欧美日韩| 日韩一区二区在线观看视频播放| 欧美成人猛片aaaaaaa| 久久先锋资源网| 中文字幕高清不卡| 综合亚洲深深色噜噜狠狠网站| 一区二区三区日韩在线观看| 天使萌一区二区三区免费观看| 日本va欧美va精品| 国产精品18久久久| 色菇凉天天综合网| 欧美精品色一区二区三区| 欧美电影免费观看高清完整版| 国产女主播视频一区二区| 亚洲欧洲精品一区二区三区 | 亚洲精品视频在线观看网站| 一区二区三区精密机械公司| 日韩av电影免费观看高清完整版 | 韩国女主播成人在线观看| 国产成+人+日韩+欧美+亚洲| 色婷婷精品大在线视频| 欧美日韩不卡一区| 精品va天堂亚洲国产| 中文字幕在线观看不卡| 婷婷久久综合九色综合绿巨人| 国产一区二区在线观看免费| 91论坛在线播放| 日韩欧美国产1| 一色屋精品亚洲香蕉网站| 天天色 色综合| 国产福利一区在线| 欧美日韩亚洲另类| 国产欧美日韩视频一区二区| 亚洲激情校园春色| 国内精品免费**视频| 色偷偷久久人人79超碰人人澡| 日韩欧美一级精品久久| 国产精品你懂的在线欣赏| 午夜电影网亚洲视频| 国产精品18久久久| 欧美蜜桃一区二区三区| 中文字幕中文乱码欧美一区二区| 日本aⅴ精品一区二区三区| 成人激情小说乱人伦| 91精品国产91久久久久久最新毛片 | 国产精品久久久久久久久久久免费看 | 国产成人一区在线| 91精品视频网| 亚洲免费电影在线| 久久91精品国产91久久小草| 色狠狠综合天天综合综合| 亚洲欧美视频在线观看| 黄色成人免费在线| 欧美日韩夫妻久久| 国产精品电影一区二区| 国产一区三区三区| 欧美精品久久久久久久多人混战| 欧美一区二区福利视频| 亚洲午夜激情网站| 不卡高清视频专区| 欧美tickling挠脚心丨vk| 午夜免费欧美电影| 色播五月激情综合网| 欧美国产精品专区| 精品一区二区在线看| 欧美美女视频在线观看| 亚洲精品免费看| 成人99免费视频| 久久精品视频一区二区| 久久精品999| 欧美日韩成人在线一区| 亚洲精品乱码久久久久久久久| 福利视频网站一区二区三区| 2021国产精品久久精品| 日本不卡视频在线观看| 欧美精品在线观看播放| 亚洲国产日日夜夜| 日本高清不卡aⅴ免费网站| 国产精品不卡在线观看| www.日韩精品| 国产精品毛片大码女人| 成人av在线影院| 国产欧美视频一区二区| 国产成人a级片| 国产视频在线观看一区二区三区| 蜜桃免费网站一区二区三区| 91精品婷婷国产综合久久竹菊| 日韩中文字幕亚洲一区二区va在线| 欧美三级中文字| 午夜国产不卡在线观看视频| 欧美精品v国产精品v日韩精品| 偷偷要91色婷婷| 欧美日产在线观看| 婷婷开心久久网| 91精品国产综合久久精品图片| 日韩专区欧美专区| 日韩写真欧美这视频| 久久精品99国产精品| 久久日韩精品一区二区五区| 国产精品一区二区视频| 国产精品午夜免费| fc2成人免费人成在线观看播放| 中文字幕一区二区三区不卡在线 | 国产精品羞羞答答xxdd| 国产人成一区二区三区影院| 成人精品免费视频| 亚洲美女屁股眼交| 色综合久久中文字幕| 亚洲一二三四久久| 91精品中文字幕一区二区三区| 精品午夜久久福利影院| 国产精品麻豆网站| 欧美亚洲日本国产| 日韩黄色免费电影| 日韩欧美一区二区在线视频| 国内精品伊人久久久久av影院| 国产欧美日韩一区二区三区在线观看| av电影天堂一区二区在线| 亚洲自拍偷拍麻豆| 日韩西西人体444www| 国产福利一区在线| 一区二区三区电影在线播| 69精品人人人人| 国产呦精品一区二区三区网站| 国产日产亚洲精品系列| 欧美性受xxxx黑人xyx| 久久成人免费网| 亚洲欧洲精品天堂一级| 欧美精品一二三| 国产美女av一区二区三区| 亚洲免费色视频| 欧美一级片免费看| 成人免费av在线| 夜夜精品浪潮av一区二区三区| 精品久久久久一区| 99精品欧美一区二区三区综合在线| 日韩在线一区二区| 国产欧美一区二区三区在线看蜜臀 | 日本一区二区不卡视频| 欧美日韩国产中文| 国产白丝精品91爽爽久久| 一区二区在线免费| 精品久久久三级丝袜| 色综合久久久网| 九九**精品视频免费播放| 亚洲人精品一区| 日韩网站在线看片你懂的| 成人a级免费电影| 另类小说色综合网站| 亚洲人成网站精品片在线观看| 日韩欧美的一区| 在线观看日韩电影| 国产麻豆9l精品三级站| 亚洲精品国产视频| 久久久久久亚洲综合影院红桃 | 久久久国产精品午夜一区ai换脸| 欧美无人高清视频在线观看| 国产精品996| 日日夜夜免费精品视频| 亚洲人成精品久久久久| 亚洲欧洲综合另类在线| 欧美日韩综合在线| 美国精品在线观看| 亚洲天堂免费看| 亚洲日本乱码在线观看| 精品久久久久一区二区国产| 欧美日韩午夜影院| 91网站最新网址| 风间由美一区二区三区在线观看 | 中文字幕中文字幕一区二区| 久久综合久久综合亚洲| 欧美精品乱码久久久久久| 欧美性大战久久久| 色综合亚洲欧洲| 99久久婷婷国产综合精品电影| 国产一区二区免费视频| 老司机精品视频一区二区三区| 日韩制服丝袜先锋影音| 午夜精品视频在线观看| 亚洲电影你懂得|