First encoded byte, mode bits and wideband bit

Software Engineer <[email protected]>
Newsgroups gmane.comp.audio.compression.speex.devel
Message-ID <[email protected]>
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.

I am sure that I am doing something wrong, but I can't figure out what it is.

I have included my code below....

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

here is my code
 
 
Init Encoder:
speex_bits_init(&thisEncoder->bits);
thisEncoder->speexEncoderInstance = speex_encoder_init(speex_lib_get_mode(SPEEX_MODEID_WB));
speex_encoder_ctl(thisEncoder->speexEncoderInstance, SPEEX_SET_QUALITY, &encodermode);
 
where encodermode = 8
 
 
Init Decoder:
thisDecoder->speexDecoderInstance = speex_decoder_init(speex_lib_get_mode(SPEEX_MODEID_WB));
speex_decoder_ctl(thisDecoder->speexDecoderInstance, SPEEX_SET_QUALITY, &decodermode);
speex_bits_init(&thisDecoder->bits);
 
where decodermode = 8
 
 
Encode:
/* Reset bitstream */
speex_bits_reset(&thisEncoder->bits);
/* PCM -> Bitstream */
speex_encode_int(thisEncoder->speexEncoderInstance, pAudiodataIn, &thisEncoder->bits);
/* Bitstream -> Byteblock */
nBytes = speex_bits_nbytes(&thisEncoder->bits);
nBytes = speex_bits_write(&thisEncoder->bits, (i8*) pEncodedAudioOut, nBytes);
firstbyte = (pEncodedAudioOut[0] >> 3) & 15;
printf("Actual mode: %d \n", firstbyte);
wideband = (pEncodedAudioOut[0] >> 7);
printf("Wideband: %d \n", wideband);
 
 
Decode:
/* Byteblock -> Bitstream */
speex_bits_read_from(&thisDecoder->bits, (i8*) pEncodedAudioIn, (int) thisDecoder->payloadSize);
/* Bitstream -> PCM */
speex_decode_int(thisDecoder->speexDecoderInstance, &thisDecoder->bits, pDecodedAudioOut);
speex_bits_reset(&thisDecoder->bits);
 

 
 
What am I doing wrong? 
 
Thanks.

_______________________________________________
Speex-dev mailing list
[email protected]
http://lists.xiph.org/mailman/listinfo/speex-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.