青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

CELT編碼解碼

轉載自:https://gist.github.com/haxar/2402477


解碼:

 
#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<stdint.h>
#include 
<string.h>
#include 
<unistd.h>
#include 
<errno.h>
 
#include 
"celt.h"
 
int
main(
int argc, char **argv) {
    
char data[2048= { };
    
short pcm[2048= { };
    
int rate        = 48000;
    
int framesize   = 960;
    
int channels    = 1;
    
int tmp;
    
int rem;
    
void *mode;
    
void *state;
    uint16_t len;
 
    
while ((tmp = getopt(argc, argv, "r:f:c:")) != -1{
        
switch (tmp) {
          
case 'r':
            rate 
= atoi(optarg);
            
break;
          
case 'f':
            framesize 
= atoi(optarg);
            
break;
          
case 'c':
            channels 
= atoi(optarg);
            
break;
        }

    }

    
if (!(mode = celt_mode_create(rate, framesize, &tmp))) {
        fprintf(stderr, 
"error: celt_mode_create: %s\n", celt_strerror(tmp));
        
return 1;
    }

    
if (!(state = celt_decoder_create_custom(mode, channels, &tmp))) {
        fprintf(stderr, 
"error: celt_decoder_create_custom: %s\n", celt_strerror(tmp));
        celt_mode_destroy(mode);
        
return 1;
    }

 
    
for (len = 0;;) {
        
if (!len) {
            
if (read(STDIN_FILENO, &len, sizeof(len)) != sizeof(len)) {
                
break;
            }

            
if (len > sizeof(data)) {
                fprintf(stderr, 
"error: celt packet larger than buffer\n");
                celt_decoder_destroy(state);
                celt_mode_destroy(mode);
                
return 1;
            }

            rem 
= len;
        }

        
if ((tmp = read(STDIN_FILENO, data + (len - rem), rem)) < 0{
            fprintf(stderr, 
"error: read: %s\n", strerror(errno));
            celt_decoder_destroy(state);
            celt_mode_destroy(mode);
            
return 1;
        }

        
if (!tmp) {
            
break;
        }

        
if (tmp != rem) {
            rem 
-= tmp;
            
continue;
        }

        
if ((tmp = celt_decode(state, (void *)data, len, pcm, framesize)) < 0{
            fprintf(stderr, 
"error: celt_decode: %s\n", celt_strerror(tmp));
            celt_decoder_destroy(state);
            celt_mode_destroy(mode);
            
return 1;
        }

        len 
= 0;
        
if (write(STDOUT_FILENO, pcm, sizeof(*pcm) * framesize * channels) < 0{
            fprintf(stderr, 
"error: write: %s\n", strerror(errno));
            celt_decoder_destroy(state);
            celt_mode_destroy(mode);
            
return 1;
        }

    }

 
    celt_decoder_destroy(state);
    celt_mode_destroy(mode);
 
    
return 0;
}



編碼:
#include <stdio.h>
#include 
<stdlib.h>
#include 
<stdint.h>
#include 
<string.h>
#include 
<unistd.h>
#include 
<errno.h>
 
#include 
"celt.h"
 
int
main(
int argc, char **argv) {
    
short pcm[2048= { };
    
char data[2048= { };
    
int rate        = 48000;
    
int framesize   = 960;
    
int channels    = 1;
    
int bitrate     = 0;
    
int variable    = 0;
    
int prediction  = 2;
    
int complexity  = 10;
    
int tmp;
    
int rem;
    
void *mode;
    
void *state;
    uint16_t len;
 
    
while ((tmp = getopt(argc, argv, "r:f:c:b:vp:x:")) != -1{
        
switch (tmp) {
          
case 'r':
            rate 
= atoi(optarg);
            
break;
          
case 'f':
            framesize 
= atoi(optarg);
            
break;
          
case 'c':
            channels 
= atoi(optarg);
            
break;
          
case 'b':
            bitrate 
= atoi(optarg);
            
break;
          
case 'v':
            variable 
= 1;
            
break;
          
case 'p':
            prediction 
= atoi(optarg);
            
break;
          
case 'x':
            complexity 
= atoi(optarg);
            
break;
        }

    }

    
if (!(mode = celt_mode_create(rate, framesize, &tmp))) {
        fprintf(stderr, 
"error: celt_mode_create: %s\n", celt_strerror(tmp));
        
return 1;
    }

    
if (!(state = celt_encoder_create_custom(mode, channels, &tmp))) {
        fprintf(stderr, 
"error: celt_encoder_create_custom: %s\n", celt_strerror(tmp));
        celt_mode_destroy(mode);
        
return 1;
    }

    
if (bitrate && celt_encoder_ctl(state, CELT_SET_BITRATE(bitrate)) != CELT_OK) {
        fprintf(stderr, 
"error: celt_encoder_ctl: CELT_SET_BITRATE: bitrate request failed\n");
        celt_encoder_destroy(state);
        celt_mode_destroy(mode);
        
return 1;
    }

    
if (variable && celt_encoder_ctl(state, CELT_SET_VBR(variable)) != CELT_OK) {
        fprintf(stderr, 
"error: celt_encoder_ctl: CELT_SET_VBR: vbr request failed\n");
        celt_encoder_destroy(state);
        celt_mode_destroy(mode);
        
return 1;
    }

    
if (celt_encoder_ctl(state, CELT_SET_PREDICTION(prediction)) != CELT_OK) {
        fprintf(stderr, 
"error: celt_encoder_ctl: CELT_SET_PREDICTION: prediction request failed\n");
        celt_encoder_destroy(state);
        celt_mode_destroy(mode);
        
return 1;
    }

    
if (celt_encoder_ctl(state, CELT_SET_COMPLEXITY(complexity)) != CELT_OK) {
        fprintf(stderr, 
"error: celt_encoder_ctl: CELT_SET_COMPLEXITY: complexity 0 through 10 is only supported\n");
        celt_encoder_destroy(state);
        celt_mode_destroy(mode);
        
return 1;
    }

 
    
for (len = 0;;) {
        
if (!len) {
            len 
= sizeof(*pcm) * framesize * channels;
            
if (len > sizeof(pcm)) {
                fprintf(stderr, 
"error: pcm frame larger than buffer\n");
                celt_encoder_destroy(state);
                celt_mode_destroy(mode);
                
return 1;
            }

            rem 
= len;
        }

        
if ((tmp = read(STDIN_FILENO, (void *)pcm + (len - rem), rem)) < 0{
            fprintf(stderr, 
"error: read: %s\n", strerror(errno));
            celt_encoder_destroy(state);
            celt_mode_destroy(mode);
            
return 1;
        }

        
if (!tmp) {
            
break;
        }

        
if (tmp != rem) {
            rem 
-= tmp;
            
continue;
        }

        
if ((tmp = celt_encode(state, pcm, framesize, (void *)data, sizeof(data))) < 0{
            fprintf(stderr, 
"error: celt_encode: %s\n", celt_strerror(tmp));
            celt_encoder_destroy(state);
            celt_mode_destroy(mode);
            
return 1;
        }

        len 
= tmp;
        
if (write(STDOUT_FILENO, &len, sizeof(len)) < 0 || write(STDOUT_FILENO, data, len) < 0{
            fprintf(stderr, 
"error: write: %s\n", strerror(errno));
            celt_encoder_destroy(state);
            celt_mode_destroy(mode);
            
return 1;
        }

        len 
= 0;
    }

 
    celt_encoder_destroy(state);
    celt_mode_destroy(mode);
 
    
return 0;
}


posted on 2013-02-10 13:09 楊粼波 閱讀(1778) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合视频1区| 免费观看亚洲视频大全| 美玉足脚交一区二区三区图片| 一区二区冒白浆视频| 99精品国产高清一区二区| 亚洲麻豆视频| 亚洲一区二区三区四区视频| 亚洲欧美国产高清| 欧美一区午夜精品| 久久免费国产| 亚洲国产裸拍裸体视频在线观看乱了中文 | 91久久国产综合久久| 亚洲二区视频在线| 99精品视频免费全部在线| 一区二区三区色| 久久久久国产精品人| 欧美成人69| 国产精品一区二区女厕厕| 激情久久久久| 亚洲视频中文字幕| 久久亚洲国产精品一区二区| 亚洲黄色尤物视频| 欧美一级久久久久久久大片| 麻豆精品传媒视频| 国产精品私人影院| 亚洲欧洲日韩在线| 久久精品人人做人人综合| 亚洲福利在线看| 亚洲欧美区自拍先锋| 欧美国产精品久久| 国内精品99| 欧美一级欧美一级在线播放| 亚洲黄色性网站| 开心色5月久久精品| 国产欧美日韩一区二区三区| 亚洲人在线视频| 久久综合九色九九| 亚洲欧美日本视频在线观看| 欧美日本在线观看| 亚洲精品九九| 欧美国产欧美综合| 久久人人97超碰人人澡爱香蕉| 国产精品亚洲一区| 亚洲永久精品国产| 99re热这里只有精品免费视频| 久久精品理论片| 国产美女精品| 亚洲免费在线观看| 亚洲美洲欧洲综合国产一区| 欧美在线视频不卡| 在线视频精品一区| 欧美成ee人免费视频| 国产综合色在线| 亚洲欧美一区二区三区在线| 亚洲国产欧美日韩精品| 久久手机免费观看| 一区在线播放视频| 免费人成网站在线观看欧美高清| 亚洲欧美日韩一区| 国产视频精品免费播放| 久久福利毛片| 久久国产免费看| 一区二区三区在线不卡| 久久久av毛片精品| 久久精品国产亚洲5555| 极品少妇一区二区| 欧美二区视频| 欧美高清视频在线观看| 亚洲精品少妇| 日韩网站在线| 国产精品第13页| 欧美影院精品一区| 久久精品国产综合| 亚洲国产视频一区| 亚洲精品乱码久久久久| 欧美日韩国产专区| 午夜精品短视频| 久久精品最新地址| 亚洲精品久久久蜜桃| 亚洲国产日韩综合一区| 欧美日韩视频专区在线播放| 亚洲欧美国产视频| 久久久精品日韩| 99视频精品在线| 国产精品99久久99久久久二8| 国产精品国产三级国产普通话三级| 欧美一乱一性一交一视频| 久久人人97超碰精品888| 9色国产精品| 欧美一区二区三区四区在线观看地址 | 亚洲国产成人久久综合一区| 欧美激情网友自拍| 午夜综合激情| 男同欧美伦乱| 欧美一区1区三区3区公司| 久久人人精品| 亚洲欧美日韩精品久久奇米色影视 | 香蕉尹人综合在线观看| 亚洲国产精品成人| 亚洲视频一起| 亚洲国产mv| 久久精品国产综合| 亚洲国产成人久久综合| 欧美性猛交99久久久久99按摩| 欧美一区二区三区免费观看 | 久久香蕉精品| 午夜精品网站| 欧美激情一区| 久久国产天堂福利天堂| 欧美国产日韩免费| 久久久久久久久蜜桃| 欧美日韩在线精品一区二区三区| 久久久亚洲国产天美传媒修理工| 欧美乱人伦中文字幕在线| 久久综合精品国产一区二区三区| 欧美视频二区| 最新国产成人av网站网址麻豆 | 国产美女高潮久久白浆| 亚洲茄子视频| 伊人久久噜噜噜躁狠狠躁| 亚洲图片在区色| 亚洲美女诱惑| 蜜臀a∨国产成人精品| 久久久久久久综合狠狠综合| 欧美午夜一区二区福利视频| 欧美1区视频| 红桃视频一区| 欧美在线网站| 久久天天躁夜夜躁狠狠躁2022| 国产精品视频999| 亚洲色无码播放| 亚洲无吗在线| 国产精品高潮呻吟久久av无限| 亚洲人成在线播放网站岛国| 亚洲精品视频在线播放| 欧美激情免费观看| 亚洲国产欧美一区二区三区久久 | 亚洲一区二区三区精品在线 | 亚洲电影天堂av| 久久久久久久精| 美女国产一区| 91久久久亚洲精品| 欧美高清视频在线| 亚洲精品一区二区三区在线观看| 亚洲日产国产精品| 欧美日韩午夜精品| 亚洲一区二区三区精品在线| 欧美一区二区网站| 国产一区二区黄| 久久九九热免费视频| 欧美大片一区二区| 在线亚洲免费| 国产麻豆成人精品| 老司机一区二区| 日韩一级欧洲| 久久精品国产免费| 最新精品在线| 国产精品美女久久久久久2018| 亚洲一区二区三区乱码aⅴ| 久久久久高清| 亚洲精品乱码久久久久久按摩观| 免费看的黄色欧美网站| 日韩网站免费观看| 国产精品白丝jk黑袜喷水| 午夜日本精品| 亚洲电影在线播放| 亚洲一二三四久久| 韩国女主播一区| 欧美另类变人与禽xxxxx| 亚洲一区中文| 美日韩在线观看| 亚洲欧美区自拍先锋| 激情五月***国产精品| 欧美日韩www| 久久精品国产99精品国产亚洲性色| 麻豆精品视频| 亚洲视频精品| 永久域名在线精品| 国产精品激情| 毛片基地黄久久久久久天堂| 亚洲天堂av在线免费观看| 美女视频黄a大片欧美| 亚洲一区二区在线看| 亚洲黄色尤物视频| 国产在线国偷精品产拍免费yy| 欧美精品一区三区| 久久久免费观看视频| 亚洲一区综合| 一本综合久久| 亚洲国产精品久久久久婷婷老年 | 国产日韩av一区二区| 免费看成人av| 久久久久久91香蕉国产| 亚洲婷婷在线| 亚洲精品一线二线三线无人区| 免费亚洲一区| 久久躁日日躁aaaaxxxx| 欧美中文字幕久久| 亚洲一区二区三区精品在线| 亚洲精品欧美日韩|