Hi, I read in the documentation something about how to realize packing more than one encoded frame into a packet. Before I read this, I always encoded every frame seperate and packet them as following together: [encoded length][encoded frame][encoded length][encoded frame]... But if I understood the docu correct, it should be easier: I call speex_encode_int() for every frame until the whole recorded buffer has been encoded. After that I call only once speex_bits_write() and send this data over the network. The receiver then calls speex_decode_int() (only once I guess, but this isn't mentioned in the manual). It works if I encode only one frame, but with multiple frames I get strange results (sounds like parts are lost or something like that). What am I doing wrong? Do I have to call speex_decode_int() for every frame inside the packet? And how can I get the number of bytes speex_decode_int() wrote into the destination buffer? Here small code snippets of my implementation: //********************************************** // Encoding: short* Frame = (short*)malloc(speex_frame_size); speex_bits_reset(enc_bits); for(unsigned int i = 0; RecBufferLen > speex_frame_size * i; i++) { memcpy(Frame, RecBuffer + speex_frame_size * i, speex_frame_size); speex_encode_int(enc_state, Frame, enc_bits); } free((void*)Frame); return speex_bits_write(enc_bits, SendBuffer, SendBufferLen); //********************************************** //Decoding: speex_bits_reset(dec_bits); speex_bits_read_from(dec_bits, RcvBuffer, RcvBufferLen); return speex_decode_int(dec_state, dec_bits, (spx_int16_t*)DestBuffer); //********************************************** Is this correct what I'm doing here? Thanks for your help! -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de