<div>Hi, Speex Fans,</div>
<div>&nbsp;</div>
<div>I collected the speex raw file from flash server and tried to decode it with samepldec.c ( I modified the code the file input) as below.</div>
<div>speex&nbsp;rate=8khz, one framesize=10 bytes in the client,</div>
<div>&nbsp;</div>
<div>When I ran the decoding program, it kept displaying the error below and the file genertaed is corrupt too.</div>
<div>Please help point out what is wrong. I also attach the raw speex file.&nbsp; Thanks,</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>===include Partial Code =============================================</div>
<div>speex_bits_init(&amp;bits);<br>&nbsp;&nbsp; /*Create a new decoder state in narrowband mode*/<br>&nbsp;&nbsp; state = speex_decoder_init(&amp;speex_nb_mode);<br>&nbsp;&nbsp; //state = speex_encoder_init(speex_lib_get_mode(SPEEX_MODEID_NB));</div>

<div>&nbsp;&nbsp; speex_decoder_ctl(state, SPEEX_GET_FRAME_SIZE, &amp;frame_size); </div>
<div>&nbsp;&nbsp; /*Set the perceptual enhancement on*/<br>&nbsp;&nbsp; tmp=1;<br>&nbsp;&nbsp; speex_decoder_ctl(state, SPEEX_SET_ENH, &amp;tmp);</div>
<div>&nbsp;&nbsp; speex_bits_init(&amp;bits);</div>
<div>&nbsp;</div>
<div>.......</div>
<div><br>&nbsp;&nbsp; while (1)<br>&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*Read the size encoded by sampleenc, this part will likely be <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; different in your application*/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nbBytes = fread(cbits, sizeof(char), 10, fin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (feof(fin))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*Read the &quot;packet&quot; encoded by sampleenc*/<br>&nbsp;&nbsp; if (nbBytes &gt; 0) {<br>&nbsp;&nbsp;&nbsp;/*Copy the data into the bit-stream struct*/<br>&nbsp;&nbsp;&nbsp;speex_bits_read_from(&amp;bits, cbits, nbBytes);</div>
<div>&nbsp;&nbsp;&nbsp;/*Decode the data*/<br>&nbsp;&nbsp;&nbsp;if (speex_decode(state, &amp;bits, output) == 0) <br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;/*Copy from float to short (16 bits) for output*/<br>&nbsp;&nbsp;&nbsp;&nbsp;for (i=0;i&lt;frame_size;i++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out[i]=output[i];</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;/*Write the decoded audio to file*/<br>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(out, sizeof(short), frame_size, fout);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp; }<br></div>
<div>errors:</div>
<div>&nbsp;</div>
<div>&nbsp;warning: Invalid mode encountered: corrupted stream?<br>warning: Invalid wideband mode encountered. Corrupted stream?<br>warning: Invalid wideband mode encountered. Corrupted stream?<br>warning: Invalid mode encountered: corrupted stream?<br>
warning: Invalid mode encountered: corrupted stream?<br>warning: Invalid wideband mode encountered. Corrupted stream?<br>warning: Invalid wideband mode encountered: corrupted stream?<br>&nbsp;&nbsp; </div>