# HG changeset patch
# User Mychaela Falconia <falcon@freecalypso.org>
# 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];