FreeCalypso > hg > gsm-codec-lib
changeset 525:c95e89367321
libgsmfr2: add gsmfr_preproc_good_frame_hm()
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 19 Sep 2024 06:42:01 +0000 |
parents | ddb2b00d582b |
children | 405a84110997 |
files | libgsmfr2/Makefile libgsmfr2/pp_homing.c libgsmfr2/tw_gsmfr.h |
diffstat | 3 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libgsmfr2/Makefile Thu Sep 19 05:02:45 2024 +0000 +++ b/libgsmfr2/Makefile Thu Sep 19 06:42:01 2024 +0000 @@ -1,8 +1,8 @@ OBJS= add.o comfort_noise.o dec_main.o dec_wrap.o dhf.o ed_state.o \ enc_homing.o enc_main.o enc_wrap.o full_dec.o long_term.o lpc.o \ - pack_frame.o pack_frame2.o pp_bad.o pp_good.o pp_state.o preprocess.o \ - prng.o rpe.o short_term.o sidclass.o silence_frame.o table.o \ - unpack_frame.o unpack_frame2.o xmaxc_mean.o + pack_frame.o pack_frame2.o pp_bad.o pp_good.o pp_homing.o pp_state.o \ + preprocess.o prng.o rpe.o short_term.o sidclass.o silence_frame.o \ + table.o unpack_frame.o unpack_frame2.o xmaxc_mean.o HDRS= ed_internal.h ed_state.h pp_internal.h pp_state.h tw_gsmfr.h typedef.h LIB= libgsmfr2.a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libgsmfr2/pp_homing.c Thu Sep 19 06:42:01 2024 +0000 @@ -0,0 +1,19 @@ +/* + * gsmfr_preproc_good_frame_hm() is a wrapper around gsmfr_preproc_good_frame() + * that adds homing of the Rx DTX handler preprocessor block. This homing + * version of good frame preproc is not used in the full decoder (the latter + * implements its own homing logic as specified by 3GPP), but it will be used + * when our Rx DTX handler preprocessor functions as a TFO transform. + */ + +#include <stdint.h> +#include <string.h> +#include "tw_gsmfr.h" + +void gsmfr_preproc_good_frame_hm(struct gsmfr_preproc_state *st, uint8_t *frame) +{ + if (memcmp(frame, gsmfr_decoder_homing_frame, GSMFR_RTP_FRAME_LEN)) + gsmfr_preproc_good_frame(st, frame); + else + gsmfr_preproc_reset(st); +}
--- a/libgsmfr2/tw_gsmfr.h Thu Sep 19 05:02:45 2024 +0000 +++ b/libgsmfr2/tw_gsmfr.h Thu Sep 19 06:42:01 2024 +0000 @@ -84,6 +84,8 @@ /* main processing functions */ void gsmfr_preproc_good_frame(struct gsmfr_preproc_state *state, uint8_t *frame); +void gsmfr_preproc_good_frame_hm(struct gsmfr_preproc_state *state, + uint8_t *frame); void gsmfr_preproc_bfi(struct gsmfr_preproc_state *state, int taf, uint8_t *frame_out);