# HG changeset patch # User Mychaela Falconia # Date 1715120123 0 # Node ID ffd87f972f86dc157b7512aa37cef24e9a0f30b3 # Parent 357d1faad55d26650754dcb9d728f1f4234e7eac libtwamr: implement TXFrameType to RXFrameType conversion diff -r 357d1faad55d -r ffd87f972f86 libtwamr/Makefile --- 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 \ diff -r 357d1faad55d -r ffd87f972f86 libtwamr/fr_type_conv.c --- /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; + } +} diff -r 357d1faad55d -r ffd87f972f86 libtwamr/tw_amr.h --- 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);