[speex-dev] SPEEX_GET_SAMPLING_RATE of encoder is wrong

Chris Flerackers cflerackers at androme.be
Tue Mar 30 00:05:39 PST 2004



Hi,

No, it only happens with speex_wb_mode.
But like I said, it is because in wideband mode, the function
sb_encoder_init
is called and this function initializes the sampling rate using
speex_*de*coder_ctl
instead of
speex_*en*coder_ctl
In narrowband mode, the sampling rate is just initialized to 8000
st->sampling_rate=8000;

BTW, I saw that my email was added to an existing thread instead of
creating a new thread. Sorry about that.

Best regards,
Chris

----- Original Message ----- 
From: "Jean-Marc Valin" <Jean-Marc.Valin at USherbrooke.ca>
To: "speex" <speex-dev at xiph.org>; <cflerackers at androme.be>
Sent: Tuesday, March 30, 2004 1:01 AM
Subject: Re: [speex-dev] SPEEX_GET_SAMPLING_RATE of encoder is wrong

> Hi,
>
> Do you get that problem with speex_nb_mode too (or only speex_wb_mode)?
>
>  Jean-Marc
>
> Le lun 29/03/2004 à 05:35, Chris Flerackers a écrit :
> > Hi,
> >
> > I'm using speex 1.1.4 and when I query SPEEX_GET_SAMPLING_RATE
> > as in
> > speex_encoder_ctl ( m_pEncoderState, SPEEX_GET_SAMPLING_RATE,
> > &m_SampleRate );
> > I get
> > 2
> > The encoder is initialized with
> > m_pEncoderState = speex_encoder_init ( &speex_wb_mode );
> >
> > On the decoder side, the correct sampling rate is returned:
> > m_pDecoderState = speex_decoder_init ( &speex_wb_mode );
> > speex_decoder_ctl ( m_pDecoderState, SPEEX_GET_SAMPLING_RATE,
> > &m_SampleRate );
> >
> > I debugged the encoder and the stack trace is as follows:
> > -> speex_encoder_ctl ( m_pEncoderState, SPEEX_GET_SAMPLING_RATE,
> > &m_SampleRate );
> > -> int speex_encoder_ctl(void *state, int request, void *ptr)
> >     return (*((SpeexMode**)state))->enc_ctl(state, request, ptr);
> > -> int sb_encoder_ctl(void *state, int request, void *ptr)
> > ...
> > case SPEEX_GET_SAMPLING_RATE:
> >       (*(int*)ptr)=st->sampling_rate;
> >       break;
> > ...
> > And st->sampling_rate is 2.
> >
> > I debugged some further and it seems:
> > sb_encoder_init
> > calls
> > speex_decoder_ctl(st->st_low, SPEEX_GET_SAMPLING_RATE,
&st->sampling_rate);
> > to get the sampling rate. I think it should be speex_encoder_ctl
(otherwise
> > SBEncState * is
> > interpreted as SBDecState *).
> >
> > Best regards,
> > Chris
> >
> > --- >8 ----
> > List archives:  http://www.xiph.org/archives/
> > Ogg project homepage: http://www.xiph.org/ogg/
> > To unsubscribe from this list, send a message to
'speex-dev-request at xiph.org'
> > containing only the word 'unsubscribe' in the body.  No subject is
needed.
> > Unsubscribe messages sent to the list will be ignored/filtered.
> -- 
> Jean-Marc Valin
> http://www.xiph.org/~jm/
> LABORIUS
> Université de Sherbrooke, Québec, Canada

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'speex-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Speex-dev mailing list