st = (SBDecState*)speex_alloc(sizeof(SBDecState)+6000*sizeof(float));
st = (SBDecState*)speex_alloc(sizeof(SBDecState)+6000*sizeof(spx_sig_t));
void *sb_decoder_init(SpeexMode *m){   SBDecState *st;   SpeexSBMode *mode;   st = (SBDecState*)speex_alloc(sizeof(SBDecState)+6000*sizeof(float));   st->mode = m;   mode=(SpeexSBMode*)m->mode;   st->encode_submode = 1;   st->stack = ((char*)st) + sizeof(SBDecState);   st->st_low = speex_decoder_init(mode->nb_mode);   st->full_frame_size = 2*mode->frameSize;   st->frame_size = mode->frameSize;   st->subframeSize = mode->subframeSize;   st->nbSubframes = mode->frameSize/mode->subframeSize;   st->lpcSize=mode->lpcSize;   speex_decoder_ctl(st->st_low, SPEEX_GET_SAMPLING_RATE, &st->sampling_rate);   st->sampling_rate*=2;   st->submodes=mode->submodes;   st->submodeID=mode->defaultSubmode;   st->first=1;   st->x0d=PUSH(st->stack, st->frame_size, spx_sig_t);   st->x1d=PUSH(st->stack, st->frame_size, spx_sig_t);   st->high=PUSH(st->stack, st->full_frame_size, spx_sig_t);   st->y0=PUSH(st->stack, st->full_frame_size, spx_sig_t);   st->y1=PUSH(st->stack, st->full_frame_size, spx_sig_t);   st->h0_mem=PUSH(st->stack, QMF_ORDER, float);   st->h1_mem=PUSH(st->stack, QMF_ORDER, float);   st->g0_mem=PUSH(st->stack, QMF_ORDER, float);   st->g1_mem=PUSH(st->stack, QMF_ORDER, float);   st->exc=PUSH(st->stack, st->frame_size, spx_sig_t);   st->qlsp = PUSH(st->stack, st->lpcSize, float);   st->old_qlsp = PUSH(st->stack, st->lpcSize, float);   st->interp_qlsp = PUSH(st->stack, st->lpcSize, float);   st->interp_qlpc = PUSH(st->stack, st->lpcSize+1, spx_coef_t);   st->pi_gain = PUSH(st->stack, st->nbSubframes, float);   st->mem_sp = PUSH(st->stack, 2*st->lpcSize, spx_mem_t);      st->lpc_enh_enabled=0;   return st;}