fixed-point: changed find_spectral_pitch() to use single-precision (16-bit) FFT.

This involved adding kfft_single.[ch] that redefines kiss_fft a second time
with a different prefix. All this is still a bit of a mess now. The mask
had to be converted to 16-bit input, but we're still using floats to apply it.
This commit is contained in:
Jean-Marc Valin 2008-03-05 17:20:30 +11:00
parent 4024444811
commit f93747c44a
12 changed files with 166 additions and 28 deletions

View file

@ -103,7 +103,7 @@ CELTEncoder *celt_encoder_create(const CELTMode *mode)
ec_byte_writeinit(&st->buf);
ec_enc_init(&st->enc,&st->buf);
st->fft = kiss_fftr_alloc(MAX_PERIOD, 0, 0);
st->fft = pitch_state_alloc(MAX_PERIOD);
psydecay_init(&st->psy, MAX_PERIOD/2, st->mode->Fs);
st->in_mem = celt_alloc(N*C*sizeof(celt_sig_t));
@ -130,7 +130,7 @@ void celt_encoder_destroy(CELTEncoder *st)
ec_byte_writeclear(&st->buf);
kiss_fft_free(st->fft);
pitch_state_free(st->fft);
psydecay_clear(&st->psy);
celt_free(st->in_mem);