view libgsmefr/dec_state.h @ 585:3c6bf0d26ee7 default tip

TW-TS-005 reader: fix maximum line length bug TW-TS-005 section 4.1 states: The maximum allowed length of each line is 80 characters, not including the OS-specific newline encoding. The implementation of this line length limit in the TW-TS-005 hex file reader function in the present suite was wrong, such that lines of the full maximum length could not be read. Fix it. Note that this bug affects comment lines too, not just actual RTP payloads. Neither Annex A nor Annex B features an RTP payload format that goes to the maximum of 40 bytes, but if a comment line goes to the maximum allowed length of 80 characters not including the terminating newline, the bug will be triggered, necessitating the present fix.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 25 Feb 2025 07:49:28 +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;
};