diff --git a/libcelt/cwrs.c b/libcelt/cwrs.c index f150ca08..02ee0fcb 100644 --- a/libcelt/cwrs.c +++ b/libcelt/cwrs.c @@ -781,7 +781,13 @@ void get_required_bits(celt_int16 *_bits,int _n,int _maxk,int _frac){ int k; /*_maxk==0 => there's nothing to do.*/ celt_assert(_maxk>0); - if(fits_in32(_n,_maxk-1)){ + if (_n==1) + { + _bits[0] = 0; + for (k=1;k<_maxk;k++) + _bits[k] = 1<<_frac; + } + else if(fits_in32(_n,_maxk-1)){ _bits[0]=0; if(_maxk>1){ VARDECL(celt_uint32,u); diff --git a/libcelt/modes.c b/libcelt/modes.c index dcab5ba0..198de47e 100644 --- a/libcelt/modes.c +++ b/libcelt/modes.c @@ -373,11 +373,7 @@ CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error) mode->window = window; for (i=0;(1<nbShortMdcts;i++) - { - /* FIXME: Do something for i==0 */ - if (i!=0) - mode->bits[i] = (const celt_int16 **)compute_alloc_cache(mode, 1, 1<bits[i] = (const celt_int16 **)compute_alloc_cache(mode, 1, 1<bits==NULL) goto failure; @@ -442,9 +438,6 @@ void celt_mode_destroy(CELTMode *mode) #ifndef STATIC_MODES for (m=0;(1<nbShortMdcts;m++) { - /* FIXME: Do something for i==0 */ - if (m==0) - continue; if (mode->bits[m]!=NULL) { for (i=0;inbEBands;i++)