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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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 楊粼波 閱讀(1780) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美精品久久99久久在免费线| 久久精品国内一区二区三区| 国产精品丝袜久久久久久app| 欧美日韩一区在线观看| 欧美韩国日本综合| 欧美日韩国产精品自在自线| 欧美日韩成人激情| 欧美视频在线播放| 国产精品视频午夜| 久久久久.com| 欧美大片在线看| 蜜臀久久久99精品久久久久久| 久久亚洲欧洲| 欧美日韩一区二区视频在线 | 欧美一区二区三区免费观看| 欧美影院视频| 欧美成ee人免费视频| 欧美日韩p片| 国产亚洲精久久久久久| 亚洲国产免费| 亚洲国产你懂的| 国内精品一区二区三区| 99精品视频免费在线观看| 欧美中文字幕在线视频| 欧美成人午夜| 午夜精品一区二区三区电影天堂| 免费在线一区二区| 欧美视频一区在线观看| 亚洲精品麻豆| 久久久久久综合网天天| 一区二区三区高清视频在线观看| 午夜伦理片一区| 亚洲国产视频直播| 国产资源精品在线观看| 午夜精品久久久久影视| 久久综合伊人| 一区二区毛片| 麻豆精品视频在线| 国产日韩欧美三区| 在线综合亚洲| 亚洲高清成人| 午夜精品视频在线观看一区二区| 欧美成人在线免费观看| 国内揄拍国内精品少妇国语| 亚洲一区免费看| 亚洲激情偷拍| 久久成人精品| 国产精品资源在线观看| 在线亚洲欧美| 亚洲片在线观看| 欧美激情精品久久久久久变态| 国产综合欧美在线看| 欧美日韩综合一区| 欧美www视频| 一区二区在线视频播放| 亚洲欧美日韩一区在线| 欧美激情国产日韩| 老司机67194精品线观看| 国产欧美一区二区三区沐欲| 亚洲一区网站| 亚洲六月丁香色婷婷综合久久| 久久精品一区二区三区不卡| 国产日韩欧美| 久久久久久久久久久久久9999 | 欧美成人资源| 久久成人一区| 黄色成人在线免费| 鲁鲁狠狠狠7777一区二区| 欧美有码视频| 在线观看日韩av| 久久躁日日躁aaaaxxxx| 久久久国产成人精品| 尹人成人综合网| 欧美国产日韩精品| 欧美精品一区二区三区很污很色的 | 亚洲欧美日韩国产中文| 国产日产亚洲精品系列| 欧美在线观看一区二区| 性欧美8khd高清极品| 国模大胆一区二区三区| 蜜桃av久久久亚洲精品| 欧美成人高清视频| 99在线精品视频在线观看| 一本久道久久久| 国产日产精品一区二区三区四区的观看方式 | 欧美一区二区三区久久精品| 先锋影音一区二区三区| 影音先锋亚洲一区| 欧美成人一区在线| 欧美日韩视频| 久久久久国产精品www| 欧美成人一区二区三区| 亚洲欧美日韩高清| 久久精品国产免费| 一本久久综合亚洲鲁鲁| 香蕉尹人综合在线观看| 亚洲人www| 午夜精彩视频在线观看不卡 | 夜夜精品视频一区二区| 国产日韩一区二区三区在线播放 | 亚洲午夜一区二区三区| 欧美一级专区免费大片| 一区二区三区四区精品| 久久久久久久999| 亚洲欧美精品中文字幕在线| 噜噜噜躁狠狠躁狠狠精品视频 | 久久亚洲精品视频| 欧美视频免费看| 欧美激情视频一区二区三区不卡| 国产精品久久久久久影视| 亚洲福利av| 亚洲第一色中文字幕| 性做久久久久久久免费看| 亚洲一区二区三区激情| 欧美成人a视频| 鲁大师成人一区二区三区| 国产喷白浆一区二区三区| 亚洲精品中文字| 亚洲精品护士| 六月婷婷一区| 免费视频一区| 国产亚洲综合在线| 亚洲网站啪啪| 亚洲欧美成人网| 欧美国产先锋| 久久久久久久97| 国模一区二区三区| 日韩一级在线观看| 亚洲国产精品va在线看黑人动漫| 久久久91精品| 欧美一区激情视频在线观看| 欧美精品九九| 欧美成人一区二区三区在线观看| 久久av资源网站| 久久久国产精品一区| 国产精品久久激情| 亚洲精品国产精品乱码不99| 亚洲高清毛片| 亚洲精品在线三区| 国产精品99久久久久久宅男| 久久色在线观看| 久久久久久久网站| 国产精品一区免费视频| 欧美va亚洲va日韩∨a综合色| 伊人春色精品| 午夜一级在线看亚洲| 国产亚洲日本欧美韩国| 亚洲一区二区成人| 午夜精品福利视频| 欧美视频在线看| 日韩午夜中文字幕| 一本一本久久| 久久久水蜜桃| 亚洲伦理一区| 亚洲网站视频| 国产精品大片wwwwww| 99视频精品在线| 久久精品国内一区二区三区| 国产亚洲激情视频在线| 性欧美1819性猛交| 久久久一本精品99久久精品66| 欧美韩国日本综合| 日韩小视频在线观看| 欧美日韩国产在线看| 香蕉视频成人在线观看| 免费精品视频| 中日韩视频在线观看| 亚洲欧美精品伊人久久| 国产精品sm| 午夜精彩国产免费不卡不顿大片| 毛片一区二区| 亚洲精品中文字幕在线观看| 欧美激情一区二区久久久| 亚洲精品女av网站| 亚洲经典自拍| 欧美国产日本| 99riav1国产精品视频| 欧美一区二区三区婷婷月色| 狠狠色狠狠色综合系列| 亚洲一级一区| 亚洲精品自在久久| 欧美在线国产| 最新国产拍偷乱拍精品| 欧美日韩在线大尺度| 免费在线看成人av| 一区二区三区国产在线观看| 久久精品国产99国产精品| 亚洲国产另类 国产精品国产免费| 欧美精品www在线观看| 午夜精品成人在线视频| 亚洲福利免费| 久久精品国产亚洲a| 国产精品二区三区四区| 欧美黄色影院| 欧美专区在线| 亚洲四色影视在线观看| 亚洲国产精品国自产拍av秋霞| 麻豆国产精品一区二区三区| 一区二区三区日韩在线观看| 国产一区在线免费观看|