/* ************************************************************************** * * Function : cod_amr_init * Purpose : Allocates memory and initializes state variables * ************************************************************************** */ int cod_amr_init (cod_amrState **state, Flag dtx) { cod_amrState* s; if (state == (cod_amrState **) NULL){ fprintf(stderr, "cod_amr_init: invalid parameter\n"); return -1; } *state = NULL; /* allocate memory */ if ((s= (cod_amrState *) malloc(sizeof(cod_amrState))) == NULL){ fprintf(stderr, "cod_amr_init: can not malloc state structure\n"); return -1; } s->lpcSt = NULL; s->lspSt = NULL; s->clLtpSt = NULL; s->gainQuantSt = NULL; s->pitchOLWghtSt = NULL; s->tonStabSt = NULL; s->vadSt = NULL; s->dtx_encSt = NULL; s->dtx = dtx; /* Init sub states */ if (cl_ltp_init(&s->clLtpSt) || lsp_init(&s->lspSt) || gainQuant_init(&s->gainQuantSt) || p_ol_wgh_init(&s->pitchOLWghtSt) || ton_stab_init(&s->tonStabSt) || #ifndef VAD2 vad1_init(&s->vadSt) || #else vad2_init(&s->vadSt) || #endif dtx_enc_init(&s->dtx_encSt) || lpc_init(&s->lpcSt)) { cod_amr_exit(&s); return -1; } cod_amr_reset(s); *state = s; return 0; }
/************************************************************************* * * Function: Speech_Encode_Frame_exit * Purpose: The memory used for state memory is freed * ************************************************************************** */ void Speech_Encode_Frame_exit (Speech_Encode_FrameState **state) { if (state == NULL || *state == NULL) return; Pre_Process_exit(&(*state)->pre_state); cod_amr_exit(&(*state)->cod_amr_state); setCounter((*state)->complexityCounter); WMOPS_output(0); setCounter(0); /* set counter to global counter */ /* deallocate memory */ free(*state); *state = NULL; return; }
void GSMEncodeFrameExit(void **state_data) { Speech_Encode_FrameState **state = (Speech_Encode_FrameState **) state_data; if (state == NULL || *state == NULL) return; Pre_Process_exit(&(*state)->pre_state); cod_amr_exit(&(*state)->cod_amr_state); /* deallocate memory */ oscl_free(*state); *state = NULL; return; }