Hi, i'm following encoder example in the manual.pdf of speex documentation. Here's my portion of code: int SPEEX_EncodePCM(struct _IDA_ClientSocket *IDA,char *buffer,unsigned char *PCM,int num_samples) { int ret,c,d=0,nbBytes,ttBytes=0; float PCM_F[160]; char cBits[200]; #ifndef DISABLESPEEX speex_bits_reset(&IDA->speex_bits); for(c=0;c<num_samples;c++) { PCM_F[d] = (float)((int)PCM[c] << 8) - 32640; if(d >= 159) { speex_encode(IDA->speex_state,PCM_F,&IDA->speex_bits); nbBytes = speex_bits_write(&IDA->speex_bits, cBits, 200); memcpy(buffer+ttBytes,cBits,nbBytes); ttBytes += nbBytes; d = 0; } else { d++; } } LOG_Write(LOG_DEBUG,"[%s:%d] Speex frame: %d\n",__FILE__,__LINE__,ttBytes); return ttBytes; #endif } int SPEEX_Init(struct _IDA_ClientSocket *IDA) { int tmp; IDA->speex_state = speex_encoder_init(&speex_nb_mode); tmp = 8; speex_encoder_ctl(IDA->speex_state, SPEEX_SET_QUALITY, &tmp); speex_bits_init(&IDA->speex_bits); } int SPEEX_Close(struct _IDA_ClientSocket *IDA) { #ifndef DISABLESPEEX speex_bits_destroy(&IDA->speex_bits); speex_encoder_destroy(IDA->speex_state); #endif } when i run this code gdb say me: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 49156 (LWP 5719)] 0x405195cc in speex_encode (state=0x7ec30d93, in=0xbf3ff624, bits=0x80955bc) at modes.c:575 in modes.c (gdb) i'm using speex 1.0.5. Someone can help me ? Thanks ! Oz -- ---- O-Zone ! No (C) 2005 www.zerozone.it