view libgsmefr/dec_state.h @ 477:4c9222d95647

libtwamr encoder: always emit frame->mode = mode; In the original implementation of amr_encode_frame(), the 'mode' member of the output struct was set to 0xFF if the output frame type is TX_NO_DATA. This design was made to mimic the mode field (16-bit word) being set to 0xFFFF (or -1) in 3GPP test sequence format - but nothing actually depends on this struct member being set in any way, and amr_frame_to_tseq() generates the needed 0xFFFF on its own, based on frame->type being equal to TX_NO_DATA. It is simpler and more efficient to always set frame->mode to the actual encoding mode in amr_encode_frame(), and this new behavior has already been documented in doc/AMR-library-API description in anticipation of the present change.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 18 May 2024 22:30:42 +0000
parents eefef9f6d533
children
line wrap: on
line source

/*
 * In this header file we define our decoder state structure.
 * This decoder state structure is internal to libgsmefr,
 * NOT part of our external public interface!
 */

struct EFR_decoder_state {
	/* from agc.c */
	Word16 past_gain;
	/* from decoder.c */
	Word16 synth_buf[L_FRAME + M];
	Word16 reset_flag_old;
	/* from dec_12k2.c */
	Word16 old_exc[L_FRAME + PIT_MAX + L_INTERPOL];
	Word16 lsp_old[M];
	Word16 mem_syn[M];
	Word16 prev_bf;
	Word16 bf_state;
	/* from d_plsf_5.c */
	Word16 past_r2_q[M];
	Word16 past_lsf_q[M];
	Word16 lsf_p_CN[M];
	Word16 lsf_old_CN[M];
	Word16 lsf_new_CN[M];
	/* from d_gains.c */
	Word16 pbuf[5];
	Word16 past_gain_pit;
	Word16 prev_gp;
	Word16 gbuf[5];
	Word16 past_gain_code;
	Word16 prev_gc;
	Word16 gcode0_CN;
	Word16 gain_code_old_CN;
	Word16 gain_code_new_CN;
	Word16 gain_code_muting_CN;
	Word16 past_qua_en[4];
	Word16 pred[4];
	/* from dtx.c */
	Word16 rxdtx_ctrl;
	Word32 L_pn_seed_rx;
	Word16 rx_dtx_state;
	Word16 rxdtx_aver_period;
	Word16 rxdtx_N_elapsed;
	Word16 prev_SID_frames_lost;
	Word16 buf_p_rx;
	Word16 lsf_old_rx[DTX_HANGOVER][M];
	Word16 gain_code_old_rx[4 * DTX_HANGOVER];
	/* from dec_lag6.c */
	Word16 old_T0;
	/* from preemph.c */
	Word16 mem_pre;
	/* from pstfilt2.c */
	Word16 res2[L_SUBFR];
	Word16 mem_syn_pst[M];
	/* our own addition */
	Word32 L_pn_seed_nodata;
};