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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            免费观看在线综合| 久久视频一区| 亚洲一区日韩| 国产毛片一区| 蜜桃av噜噜一区| 男人天堂欧美日韩| 国产精品99久久久久久久vr| 中文一区字幕| 一区免费在线| 亚洲精品免费在线| 国产精品精品视频| 久久综合中文色婷婷| 欧美国产乱视频| 亚洲欧美另类国产| 久久久夜精品| 亚洲欧美日韩另类| 久久天天躁狠狠躁夜夜爽蜜月| 99riav1国产精品视频| 亚洲永久在线| 亚洲精选大片| 欧美专区一区二区三区| 99在线|亚洲一区二区| 亚洲女人天堂成人av在线| 亚洲国产毛片完整版| 亚洲性人人天天夜夜摸| 尹人成人综合网| 一区二区三区视频在线播放| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 蜜臀av国产精品久久久久| 亚洲深夜福利视频| 久久婷婷久久| 欧美一区二区视频在线观看2020| 麻豆精品网站| 久久一区二区精品| 国产精品日本精品| 亚洲老板91色精品久久| 在线精品一区| 午夜欧美视频| 亚洲欧美卡通另类91av| 欧美国产91| 免费日韩一区二区| 国产一区二区三区四区三区四| 99热免费精品| 99国产精品一区| 女同一区二区| 久热综合在线亚洲精品| 国产日韩视频| 午夜精品福利视频| 一区二区三区国产在线观看| 一区二区在线观看视频在线观看| 亚洲一区二区三区激情| 中文av字幕一区| 欧美人妖在线观看| 亚洲国产精选| 亚洲另类自拍| 欧美a级一区二区| 欧美激情成人在线| 亚洲激情电影在线| 欧美freesex8一10精品| 欧美成人有码| 91久久精品美女| 美女999久久久精品视频| 老司机午夜免费精品视频| 国产主播在线一区| 久久五月激情| 欧美高清不卡| 99精品视频免费在线观看| 欧美国产日韩视频| 宅男66日本亚洲欧美视频| 亚洲天天影视| 国产欧美一级| 久久久久高清| 亚洲国产精品一区二区第一页| 亚洲激情在线播放| 欧美精品色综合| 这里是久久伊人| 久久精品国产视频| 在线看片欧美| 欧美日韩国产一级| 亚洲欧美一级二级三级| 老司机久久99久久精品播放免费 | 久久免费精品视频| 亚洲高清123| 亚洲综合电影一区二区三区| 国产精品系列在线播放| 久久久久国产精品午夜一区| 亚洲第一精品夜夜躁人人爽| 夜夜嗨av一区二区三区四区| 国产精品av一区二区| 欧美一区二区久久久| 欧美大片在线看| 亚洲欧美一区二区原创| 伊人久久大香线蕉av超碰演员| 欧美www视频在线观看| 亚洲一区二区三区中文字幕 | 欧美一区亚洲| 亚洲国产毛片完整版 | 久久久久一区二区| 99在线视频精品| 美女成人午夜| 午夜精品视频在线| 亚洲精品字幕| 国产在线视频欧美| 欧美日韩在线看| 久久久青草婷婷精品综合日韩| 一本色道久久综合精品竹菊| 欧美91大片| 欧美一级午夜免费电影| 99re66热这里只有精品4| 国产模特精品视频久久久久 | 亚洲一区二区在线| 亚洲人成在线观看| 美国三级日本三级久久99| 亚洲影院高清在线| 亚洲精品在线观看免费| 国内精品久久久久伊人av| 欧美日韩在线观看一区二区| 久久天天躁夜夜躁狠狠躁2022 | 欧美二区视频| 欧美在线观看一区二区三区| 9l视频自拍蝌蚪9l视频成人| 精品电影在线观看| 国产一区二区无遮挡| 欧美性做爰毛片| 欧美精品在线一区二区三区| 老司机一区二区三区| 欧美在线观看视频在线| 亚洲视频在线观看| 日韩视频免费观看高清在线视频 | 久久亚洲电影| 久久精品视频免费播放| 亚洲专区在线视频| 亚洲免费中文| 亚洲免费一在线| 中日韩视频在线观看| 中文欧美字幕免费| 亚洲视频一起| 亚洲欧美精品在线观看| 亚洲欧美国产va在线影院| 一区二区三区.www| 亚洲视频在线播放| 亚洲一区二区三区高清| 中文日韩欧美| 午夜视频在线观看一区二区三区| 亚洲综合日韩| 先锋影音一区二区三区| 性视频1819p久久| 久久久久www| 蜜臀av在线播放一区二区三区| 麻豆av一区二区三区久久| 欧美a级一区二区| 亚洲国产免费看| 99ri日韩精品视频| 亚洲欧美久久久| 久久久国产精品一区二区中文 | 久久av一区二区三区漫画| 久久精品最新地址| 欧美暴力喷水在线| 亚洲免费在线播放| 欧美国产日韩一区二区在线观看| 免费观看国产成人| 91久久精品美女| 一区二区三区国产在线| 久久九九热re6这里有精品| 欧美在线视频一区二区| 男人的天堂亚洲| 欧美三日本三级少妇三99| 国产精品入口尤物| 国产精品女同互慰在线看| 欧美四级在线观看| 欧美午夜性色大片在线观看| 国产伦精品一区二区三区视频孕妇| 国产欧美一区在线| 永久免费毛片在线播放不卡| 亚洲精品国精品久久99热| 亚洲午夜在线观看| 久久免费午夜影院| 亚洲精品一区二| 欧美在线视频a| 欧美乱在线观看| 国产一区二区三区黄| 亚洲美女视频在线观看| 欧美在线看片| 91久久午夜| 久久黄金**| 国产精品久久久久影院亚瑟 | 亚洲一区二区三区精品在线观看 | 亚洲午夜国产一区99re久久 | 久久噜噜亚洲综合| 亚洲精品乱码视频| 欧美一区二区三区久久精品| 欧美激情在线播放| 黄色av一区| 欧美一区二区三区婷婷月色 | 久久综合电影| 午夜精品在线观看| 欧美日韩精品免费观看视一区二区 | 亚洲欧美大片| 亚洲黑丝一区二区| 久久久之久亚州精品露出|