读书人

请问下speex编解码有关问题

发布时间: 2012-03-15 11:50:39 作者: rapoo

请教下speex编解码问题
考虑用speex来对音频数据编解码处理后进行发送,

想测试下speex的编解码效果,

我用一个short[200]数组默认设置为1,

通过编码,再解码后,看效果,

speex_decode_int返回的是0,意思是成功,但是解码输出数组一直没有结果,是因为我的测试数据不是音频数据的缘故吗?

以下是我的代码。编码后直接解码。希望有经验的朋友指点下,自己也在继续摸索中


C/C++ code
    int          _ErrorFlag = 0;    //编码后数据    char      _Output_Temp[200] = { 0 };    //编码    SpeexBits _Bits;    void*     _State;    //所要编码的数组    short      _Input[200]  = { 0 };    for ( int i = 0; i < 200; i++ )    {        _Input[i] = 1;    }    _State = speex_encoder_init( &speex_nb_mode );     //设置编码质量    int quality_value = 8;    speex_encoder_ctl( _State, SPEEX_SET_QUALITY, &quality_value );     speex_bits_init( &_Bits );     speex_bits_reset( &_Bits );    speex_encode_int( _State, _Input, &_Bits );    int nbBytes = speex_bits_write( &_Bits, _Output_Temp, 200 );     speex_encoder_destroy( _State );    speex_bits_destroy( &_Bits );    //解码    SpeexBits _Bits_De;    void*     _State_De;    //解码数组    short      _Output[200]  = { 0 };    _State_De = speex_decoder_init( &speex_nb_mode );     speex_bits_init( &_Bits_De );    speex_bits_read_from( &_Bits_De, _Output_Temp, nbBytes );    quality_value = 8;    speex_decoder_ctl( _State_De, SPEEX_SET_QUALITY, &quality_value );     //返回结果为0 但是_Output仍然为0.而不是1....    int nRet = speex_decode_int( _State_De, &_Bits_De , _Output );    speex_decoder_destroy( _State_De );    speex_bits_destroy( &_Bits_De );


[解决办法]
不了解
帮顶
[解决办法]
楼主,问题解决了没有,我也有些问题,想请教你下!
[解决办法]
探讨

不了解
帮顶

读书人网 >C++

热点推荐