Hi Alls Sorry for my newbe question I want to decode a speex multi frame stream I got 38 bytes packets and make 800 bytes buffer this is my simple code CSpeexCodec::CSpeexCodec(void) { // speex_bits_init(&m_speexBitsOut); m_pSpeexEncStateOut = speex_encoder_init(&speex_nb_mode); int nEhc=1; int nSamplePerSec = SAMPLES_PER_SEC; static int nQuality = 8; speex_encoder_ctl(m_pSpeexEncStateOut, SPEEX_SET_SAMPLING_RATE, &nSamplePerSec); speex_encoder_ctl(m_pSpeexEncStateOut, SPEEX_SET_QUALITY, &nQuality); //speex_encoder_ctl(m_pSpeexEncStateOut, SPEEX_SET_VBR, &nEhc); //speex_encoder_ctl(m_pSpeexEncStateOut, SPEEX_SET_VAD, &nEhc); //speex_encoder_ctl(m_pSpeexEncStateOut, SPEEX_SET_DTX, &nEhc); speex_encoder_ctl(m_pSpeexEncStateOut, SPEEX_GET_FRAME_SIZE, &m_nEncodeFrameSize); // speex_bits_init(&m_speexBitsIn); m_pSpeexDecStateIn= speex_decoder_init(&speex_nb_mode); speex_decoder_ctl(m_pSpeexDecStateIn, SPEEX_GET_FRAME_SIZE, &m_nDecodeFrameSize); } int CSpeexCodec::Decode(const char* pcIndata, int nIndataSize, CShortCollection& dataOut) { // speex_bits_read_from( &m_speexBitsIn, (char*)pcIndata, nIndataSize); static std::vector<float> floatDataOut; int nFrame = 0; size_t nbBytes = speex_bits_remaining(&m_speexBitsIn); while(nbBytes > 0 ) { if( (nFrame+1) * m_nDecodeFrameSize > (int)floatDataOut.size( ) ) { if( !floatDataOut.size( ) ) floatDataOut.resize(m_nDecodeFrameSize ); else floatDataOut.resize(floatDataOut.size( ) * 2 ); } if ( speex_decode(m_pSpeexDecStateIn, &m_speexBitsIn, &floatDataOut[ nFrame++ * m_nDecodeFrameSize ] ) != 0 ) break; nbBytes = speex_bits_remaining(&m_speexBitsIn); } // float -> short dataOut.resize( nFrame * m_nDecodeFrameSize ); const float* pfSrc = &floatDataOut[0]; short* phDst = &dataOut[0]; size_t nOutSize = dataOut.size( ); while(nOutSize-- ) { *phDst++ = (short)*pfSrc++; } return 0; } So speex_decode return -2 after 2-3 interation in my while loop What is wrong ? Thank for help -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20100610/4e09bf9e/attachment.htm