# HG changeset patch # User Mychaela Falconia # Date 1726729392 0 # Node ID f3246d109e2d9b0bc58a0fdcd437fc827db843d7 # Parent 405a84110997f431cd6ca534d588e48436a776e2 libgsmfr2: add gsmfr_fulldec_bfi_bits() diff -r 405a84110997 -r f3246d109e2d libgsmfr2/full_dec.c --- a/libgsmfr2/full_dec.c Thu Sep 19 06:54:06 2024 +0000 +++ b/libgsmfr2/full_dec.c Thu Sep 19 07:03:12 2024 +0000 @@ -74,3 +74,16 @@ gsmfr_preproc_bfi(&st->rx_dtx, taf, frame_mod); gsmfr_0610_decode_frame(&st->dec_0610, frame_mod, pcm_out); } + +void gsmfr_fulldec_bfi_bits(struct gsmfr_fulldec_state *st, + const uint8_t *bad_frame, int taf, int16_t *pcm_out) +{ + uint8_t frame_mod[GSMFR_RTP_FRAME_LEN]; + + if (st->is_homed) { + memset(pcm_out, 0, sizeof(int16_t) * 160); + return; + } + gsmfr_preproc_bfi_bits(&st->rx_dtx, bad_frame, taf, frame_mod); + gsmfr_0610_decode_frame(&st->dec_0610, frame_mod, pcm_out); +} diff -r 405a84110997 -r f3246d109e2d libgsmfr2/tw_gsmfr.h --- a/libgsmfr2/tw_gsmfr.h Thu Sep 19 06:54:06 2024 +0000 +++ b/libgsmfr2/tw_gsmfr.h Thu Sep 19 07:03:12 2024 +0000 @@ -116,6 +116,8 @@ const uint8_t *frame, int16_t *pcm); void gsmfr_fulldec_bfi(struct gsmfr_fulldec_state *state, int taf, int16_t *pcm); +void gsmfr_fulldec_bfi_bits(struct gsmfr_fulldec_state *state, + const uint8_t *bad_frame, int taf, int16_t *pcm); /* utility datum */ extern const uint8_t gsmfr_decoder_homing_frame[GSMFR_RTP_FRAME_LEN];