changeset 428:ffd87f972f86

libtwamr: implement TXFrameType to RXFrameType conversion
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 07 May 2024 22:15:23 +0000
parents 357d1faad55d
children 3ce30a95769e
files libtwamr/Makefile libtwamr/fr_type_conv.c libtwamr/tw_amr.h
diffstat 3 files changed, 53 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/libtwamr/Makefile	Tue May 07 21:45:47 2024 +0000
+++ b/libtwamr/Makefile	Tue May 07 22:15:23 2024 +0000
@@ -7,17 +7,18 @@
 	d8_31pf.o d_gain_c.o d_gain_p.o d_plsf.o d_plsf_3.o d_plsf_5.o \
 	dec_amr.o dec_gain.o dec_lag3.o dec_lag6.o dec_main.o dhf_check.o \
 	dhf_tables.o dtx_dec.o dtx_enc.o e_homing.o ec_gains.o enc_lag3.o \
-	enc_lag6.o enc_main.o ex_ctrl.o g_adapt.o g_code.o g_pitch.o gain_q.o \
-	gains_tab.o gc_pred.o gmed_n.o graytab.o hp_max.o int_lpc.o int_lsf.o \
-	inter_36.o inv_sqrt.o lag_wind.o levinson.o lflg_upd.o log2.o lpc.o \
-	lsfwt.o lsp.o lsp_avg.o lsp_az.o lsp_lsf.o lsp_tab.o mac_32.o ol_ltp.o \
-	oper_32b.o p_ol_wgh.o ph_disp.o pitch_fr.o pitch_ol.o post_pro.o pow2.o\
-	pre_big.o pre_proc.o pred_lt.o preemph.o prm2bits.o prmno.o pstfilt.o \
-	q_gain_c.o q_gain_p.o q_plsf.o q_plsf3_tab.o q_plsf5_tab.o q_plsf_3.o \
-	q_plsf_5.o qgain475.o qgain795.o qua_gain.o qua_gain_tab.o r_fft.o \
-	reorder.o residu.o s10_8pf.o set_sign.o sid_sync.o spreproc.o \
-	spstproc.o sqrt_l.o syn_filt.o tls_flags.o ton_stab.o tseq_out.o vad1.o\
-	vad2.o vad_reset.o weight_a.o window.o
+	enc_lag6.o enc_main.o ex_ctrl.o fr_type_conv.o g_adapt.o g_code.o \
+	g_pitch.o gain_q.o gains_tab.o gc_pred.o gmed_n.o graytab.o hp_max.o \
+	int_lpc.o int_lsf.o inter_36.o inv_sqrt.o lag_wind.o levinson.o \
+	lflg_upd.o log2.o lpc.o lsfwt.o lsp.o lsp_avg.o lsp_az.o lsp_lsf.o \
+	lsp_tab.o mac_32.o ol_ltp.o oper_32b.o p_ol_wgh.o ph_disp.o pitch_fr.o \
+	pitch_ol.o post_pro.o pow2.o pre_big.o pre_proc.o pred_lt.o preemph.o \
+	prm2bits.o prmno.o pstfilt.o q_gain_c.o q_gain_p.o q_plsf.o \
+	q_plsf3_tab.o q_plsf5_tab.o q_plsf_3.o q_plsf_5.o qgain475.o qgain795.o\
+	qua_gain.o qua_gain_tab.o r_fft.o reorder.o residu.o s10_8pf.o \
+	set_sign.o sid_sync.o spreproc.o spstproc.o sqrt_l.o syn_filt.o \
+	tls_flags.o ton_stab.o tseq_out.o vad1.o vad2.o vad_reset.o weight_a.o \
+	window.o
 HDRS=	a_refl.h agc.h autocorr.h az_lsp.h b_cn_cod.h basic_op.h bgnscd.h \
 	bitno.h bits2prm.h c1035pf.h c2_11pf.h c2_9pf.h c3_14pf.h c4_17pf.h \
 	c8_31pf.h c_g_aver.h calc_cor.h calc_en.h cbsearch.h cl_ltp.h cnst.h \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libtwamr/fr_type_conv.c	Tue May 07 22:15:23 2024 +0000
@@ -0,0 +1,40 @@
+/*
+ * The function implemented in this module converts from TXFrameType
+ * to RXFrameType.  It is needed for decoding standard test sequence
+ * .cod files, where TXFrameType is used in the file but RXFrameType
+ * is needed for decoding.
+ */
+
+#include "tw_amr.h"
+
+int amr_txtype_to_rxtype(enum TXFrameType tx_type, enum RXFrameType *rx_type)
+{
+	switch (tx_type) {
+	case TX_SPEECH_GOOD:
+		*rx_type = RX_SPEECH_GOOD;
+		return 0;
+	case TX_SPEECH_DEGRADED:
+		*rx_type = RX_SPEECH_DEGRADED;
+		return 0;
+	case TX_SPEECH_BAD:
+		*rx_type = RX_SPEECH_BAD;
+		return 0;
+	case TX_SID_FIRST:
+		*rx_type = RX_SID_FIRST;
+		return 0;
+	case TX_SID_UPDATE:
+		*rx_type = RX_SID_UPDATE;
+		return 0;
+	case TX_SID_BAD:
+		*rx_type = RX_SID_BAD;
+		return 0;
+	case TX_ONSET:
+		*rx_type = RX_ONSET;
+		return 0;
+	case TX_NO_DATA:
+		*rx_type = RX_NO_DATA;
+		return 0;
+	default:
+		return -1;
+	}
+}
--- a/libtwamr/tw_amr.h	Tue May 07 21:45:47 2024 +0000
+++ b/libtwamr/tw_amr.h	Tue May 07 22:15:23 2024 +0000
@@ -84,7 +84,7 @@
 
 /* stateless utility functions: format conversions */
 
-enum RXFrameType amr_txtype_to_rxtype(enum TXFrameType tx_type);
+int amr_txtype_to_rxtype(enum TXFrameType tx_type, enum RXFrameType *rx_type);
 
 unsigned amr_frame_to_ietf(const struct amr_param_frame *frame, uint8_t *bytes);
 int amr_frame_from_ietf(const uint8_t *bytes, struct amr_param_frame *frame);