<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div>I have read the speex manual, looked at the example code, but for some reason the first encoded byte does not have the wideband bit set and the mode bits are also wrong even though I am encoding in wideband mode.</div><div><br>I am sure that I am doing something wrong, but I can't figure out what it is.<br><br>I have included my code below....<br></div><div>I would expect that the MSB of the first encoded byte is 1 (wideband) and that the next 4 bits would be 8 (because I requested mode 8)...but this is the mapping I see</div><div><br>here is my code</div><div> </div><div> </div><div><strong>Init Encoder:<br></strong>speex_bits_init(&thisEncoder->bits);<br>thisEncoder->speexEncoderInstance = speex_encoder_init(speex_lib_get_mode(SPEEX_MODEID_WB));<br>speex_encoder_ctl(thisEncoder->speexEncoderInstance,
SPEEX_SET_QUALITY, &encodermode);<br> <br>where encodermode = 8<br> <br> <br><strong>Init Decoder:</strong><br>thisDecoder->speexDecoderInstance = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_WB));<br>speex_decoder_ctl(thisDecoder->speexDecoderInstance, SPEEX_SET_QUALITY, &decodermode);<br>speex_bits_init(&thisDecoder->bits);<br> <br>where decodermode = 8<br> <br> <br><strong>Encode:</strong><br>/* Reset bitstream */<br>speex_bits_reset(&thisEncoder->bits);<br>/* PCM -> Bitstream */<br>speex_encode_int(thisEncoder->speexEncoderInstance, pAudiodataIn, &thisEncoder->bits);<br>/* Bitstream -> Byteblock */<br>nBytes = speex_bits_nbytes(&thisEncoder->bits);<br>nBytes = speex_bits_write(&thisEncoder->bits, (i8*) pEncodedAudioOut, nBytes);</div><div>firstbyte = (pEncodedAudioOut[0] >> 3) & 15;<br>printf("Actual mode: %d \n", firstbyte);<br>wideband =
(pEncodedAudioOut[0] >> 7);<br>printf("Wideband: %d \n", wideband);<br> <br> <br><strong>Decode:</strong><br>/* Byteblock -> Bitstream */<br>speex_bits_read_from(&thisDecoder->bits, (i8*) pEncodedAudioIn, (int) thisDecoder->payloadSize);</div><div>/* Bitstream -> PCM */<br>speex_decode_int(thisDecoder->speexDecoderInstance, &thisDecoder->bits, pDecodedAudioOut);<br>speex_bits_reset(&thisDecoder->bits);<br> <br></div><div> </div><div> </div><div>What am I doing wrong? </div><div> </div><div>Thanks.</div><div><var id="yui-ie-cursor"></var> </div></div></body></html>