# HG changeset patch # User Mychaela Falconia # Date 1713287884 0 # Node ID 6b33f3ba4289a358c1c711202f6f3f7e7a624b4d # Parent 047c198408c8e38cbcf527f669dbdc2d6c84ec61 libtwamr: go for single-chunk-state approach diff -r 047c198408c8 -r 6b33f3ba4289 libtwamr/agc.c --- a/libtwamr/agc.c Mon Apr 15 23:47:51 2024 +0000 +++ b/libtwamr/agc.c Tue Apr 16 17:18:04 2024 +0000 @@ -25,8 +25,6 @@ * INCLUDE FILES ***************************************************************************** */ -#include -#include #include "typedef.h" #include "basic_op.h" #include "no_count.h" @@ -104,72 +102,14 @@ /* ************************************************************************** * -* Function : agc_init -* Purpose : Allocates memory for agc state and initializes -* state memory -* -************************************************************************** -*/ -int agc_init (agcState **state) -{ - agcState* s; - - if (state == (agcState **) NULL){ - fprintf(stderr, "agc_init: invalid parameter\n"); - return -1; - } - *state = NULL; - - /* allocate memory */ - if ((s= (agcState *) malloc(sizeof(agcState))) == NULL){ - fprintf(stderr, "agc_init: can not malloc state structure\n"); - return -1; - } - - agc_reset(s); - *state = s; - - return 0; -} - -/* -************************************************************************** -* * Function : agc_reset * Purpose : Reset of agc (i.e. set state memory to 1.0) * ************************************************************************** */ -int agc_reset (agcState *state) +void agc_reset (agcState *state) { - if (state == (agcState *) NULL){ - fprintf(stderr, "agc_reset: invalid parameter\n"); - return -1; - } - state->past_gain = 4096; /* initial value of past_gain = 1.0 */ - - return 0; -} - -/* -************************************************************************** -* -* Function : agc_exit -* Purpose : The memory used for state memory is freed -* -************************************************************************** -*/ -void agc_exit (agcState **state) -{ - if (state == NULL || *state == NULL) - return; - - /* deallocate memory */ - free(*state); - *state = NULL; - - return; } /* diff -r 047c198408c8 -r 6b33f3ba4289 libtwamr/agc.h --- a/libtwamr/agc.h Mon Apr 15 23:47:51 2024 +0000 +++ b/libtwamr/agc.h Tue Apr 16 17:18:04 2024 +0000 @@ -40,38 +40,13 @@ /* ************************************************************************** * -* Function : agc_init -* Purpose : Allocates memory for agc state and initializes -* state memory -* Description : Stores pointer to agc status struct in *st. This pointer -* has to be passed to agc in each call. -* Returns : 0 on success -* -************************************************************************** -*/ -int agc_init(agcState **st); - -/* -************************************************************************** -* * Function : agc_reset * Purpose : Reset of agc (i.e. set state memory to 1.0) * Returns : 0 on success * ************************************************************************** */ -int agc_reset (agcState *st); - -/* -************************************************************************** -* -* Function : agc_exit -* Purpose : The memory used for state memory is freed, -* de-initialize agc -* -************************************************************************** -*/ -void agc_exit (agcState **st); +void agc_reset (agcState *st); /* ************************************************************************** diff -r 047c198408c8 -r 6b33f3ba4289 libtwamr/tw_amr.h --- a/libtwamr/tw_amr.h Mon Apr 15 23:47:51 2024 +0000 +++ b/libtwamr/tw_amr.h Tue Apr 16 17:18:04 2024 +0000 @@ -1,7 +1,7 @@ /* * This header file is the external public interface to libtwamr; * it should be installed in the same system include directory - * as and for more classic GSM codecs. + * as and for more classic GSM codecs. */ #ifndef __THEMWI_AMR_H @@ -62,12 +62,8 @@ struct amr_encoder_state *amr_encoder_create(int dtx); struct amr_decoder_state *amr_decoder_create(void); -/* special freeing functions to deal with extra internal structs */ -void amr_encoder_free(struct amr_encoder_state *st); -void amr_decoder_free(struct amr_decoder_state *st); - /* reset state to initial */ -void amr_encoder_reset(struct amr_encoder_state *st); +void amr_encoder_reset(struct amr_encoder_state *st, int dtx); void amr_decoder_reset(struct amr_decoder_state *st); /* interface structure for passing frames of codec parameters */ @@ -80,8 +76,8 @@ /* encoder and decoder main functions */ -void amr_encode_frame(struct amr_encoder_state *st, const int16_t *pcm, - struct amr_param_frame *frame); +void amr_encode_frame(struct amr_encoder_state *st, enum Mode mode, + const int16_t *pcm, struct amr_param_frame *frame); void amr_decode_frame(struct amr_decoder_state *st, const struct amr_param_frame *frame, int16_t *pcm);