/* ************************************************************************** * * Function : D_plsf_init * Purpose : Allocates and initializes state memory * ************************************************************************** */ int D_plsf_init (D_plsfState **state) { D_plsfState* s; if (state == (D_plsfState **) NULL){ fprintf(stderr, "D_plsf_init: invalid parameter\n"); return -1; } *state = NULL; /* allocate memory */ if ((s= (D_plsfState *) malloc(sizeof(D_plsfState))) == NULL){ fprintf(stderr, "D_plsf_init: can not malloc state structure\n"); return -1; } D_plsf_reset(s); *state = s; return 0; }
/* ************************************************************************** * * Function : Decoder_amr_reset * Purpose : Resets state memory * ************************************************************************** */ int Decoder_amr_reset (Decoder_amrState *state, enum Mode mode) { Word16 i; if (state == (Decoder_amrState *) NULL){ fprintf(stderr, "Decoder_amr_reset: invalid parameter\n"); return -1; } /* Initialize static pointer */ state->exc = state->old_exc + PIT_MAX + L_INTERPOL; /* Static vectors to zero */ Set_zero (state->old_exc, PIT_MAX + L_INTERPOL); if (mode != MRDTX) Set_zero (state->mem_syn, M); /* initialize pitch sharpening */ state->sharp = SHARPMIN; state->old_T0 = 40; /* Initialize state->lsp_old [] */ if (mode != MRDTX) { Copy(lsp_init_data, &state->lsp_old[0], M); } /* Initialize memories of bad frame handling */ state->prev_bf = 0; state->prev_pdf = 0; state->state = 0; state->T0_lagBuff = 40; state->inBackgroundNoise = 0; state->voicedHangover = 0; if (mode != MRDTX) { for (i=0;i<9;i++) state->excEnergyHist[i] = 0; } for (i = 0; i < 9; i++) state->ltpGainHistory[i] = 0; Cb_gain_average_reset(state->Cb_gain_averState); if (mode != MRDTX) lsp_avg_reset(state->lsp_avg_st); D_plsf_reset(state->lsfState); ec_gain_pitch_reset(state->ec_gain_p_st); ec_gain_code_reset(state->ec_gain_c_st); if (mode != MRDTX) gc_pred_reset(state->pred_state); Bgn_scd_reset(state->background_state); state->nodataSeed = 21845; ph_disp_reset(state->ph_disp_st); if (mode != MRDTX) dtx_dec_reset(state->dtxDecoderState); return 0; }