zoukankan      html  css  js  c++  java
  • Celt Codec简单使用方法

    CeltCodec目前需要交叉编译器编译后才能正常在WIN平台上运行,我这里使用的是(mingw),编译成功会产生一个libcelt.a,另外需要讲libgcc.a也COPY到项目中才正常使用

     g_dwNotifySize = (pwfxInput->nAvgBytesPerSec * 20)/ 1000;等分处理
    
    公式为: AudioLength=samplingrate * 采样时间(20ms) * channl * 2
    
    void TestCeltCodec(short * sAudio)/* sAudio需要编码的数据 */
    {
     //初始化
     
     int err,samplingrate=32000,framesize=640,channl=1;
    
     int nEncodingAudioLength;//编码后的音频数据长度
    
     unsigned char cEncodingAudioContainer[960];//编码后的音频数据
    
     //初始化CELT模型
    
     CELTMode * mode=celt_mode_create(samplingrate,framesize,&err);
    
     CELTEncoder * enc_state=celt_encoder_create(mode, channl, &err);
    
     CELTDecoder * dec_state=celt_decoder_create(mode, channl, &err);
    
     //开始编码
    
     nEncodingAudioLength=celt_encode(enc_state,(celt_int16 *)sAudio,framesize,cEncodingAudioContainer,framesize);
    
     //分配内存
    
     celt_int16 * out=(celt_int16*)malloc(framesize*channl*sizeof(celt_int16));
    
     //开始解码
    
     celt_decode(dec_state,cEncodingAudioContainer,nEncodingAudioLength,out,framesize);
    
     //类型转换
    
     short  sOutput[FRAME_SIZE];
    
     for (int i=0;i<framesize;i++)
     {
      sOutput[i]=out[i];
     }
    
     //播放声音
    
     AudioPay((BYTE*)sAudio,nEncodingAudioLength*2);
    
    }
    
  • 相关阅读:
    node generator 模仿co
    node-webkit 屏幕截图功能
    linux命令, cut,sort,wc,uniq,tee 说明
    linux命令,vim,vi 说明
    linux命令,tar,configure,make,make install,su 说明
    java高级工程师学习方向
    oracle: Rownum原理
    Win7 环境weblogic用户名和密码忘记解决方法
    struts原理介绍,面试
    JSP、servlet--学习摘要
  • 原文地址:https://www.cnblogs.com/ytjjyy/p/2240205.html
Copyright © 2011-2022 走看看