view libgsmhr1/enc_state.h @ 610:d18efcba03bc

libgsmhr1: capture speech encoder state
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 05 Mar 2026 00:56:30 +0000
parents
children f8759c856006
line wrap: on
line source

/*
 * This library-internal header file provides definition for
 * struct gsmhr_encoder_state, the state structure for our speech
 * encoder engine.
 */

#ifndef enc_state_h
#define enc_state_h

#include "typedefs.h"

#define CG_INT_MACS       6            /* Number of Multiply-Accumulates in */
                                       /* one interpolation                 */
#define LMAX            142            /* largest lag (integer sense) */
#define LSMAX           (LMAX+ CG_INT_MACS/2)   /* Lag Search Array Length */
#define LPCSTARTINDEX     25           /* Where the LPC analysis window
                                        * starts */
#define INBUFFSZ          LPCSTARTINDEX + A_LEN /* Input buffer size  */

#define HNW_BUFF_LEN    LSMAX
#define LTP_LEN       147              /* 147==0x93 length of LTP history */

struct gsmhr_encoder_state {
	int dtx_mode;
	/* state variables from sp_enc.c */
	Shortword swOldR0;
	Shortword swOldR0Index;
	struct NormSw psnsWSfrmEngSpace[2 * N_SUB];
	Shortword pswHPFXState[4];
	Shortword pswHPFYState[8];
	Shortword pswOldFrmKs[NP];
	Shortword pswOldFrmAs[NP];
	Shortword pswOldFrmSNWCoefs[NP];
	Shortword pswWgtSpeechSpace[F_LEN + LMAX + CG_INT_MACS / 2];
	Shortword pswSpeech[INBUFFSZ];         /* input speech */
	Shortword swPtch;
	/* DTX state variables from sp_enc.c */
	Shortword swTxGsHistPtr;
	Shortword pswCNVSCode1[N_SUB];
	Shortword pswCNVSCode2[N_SUB];
	Shortword pswCNGsp0Code[N_SUB];
	Shortword pswCNLpc[3];
	Shortword swCNR0;
	/* DTX state variables from dtx.c */
	Shortword swVadFrmCnt;
	short int siUpdPointer;
	Shortword swNElapsed;
	Longword pL_GsHist[N_SUB * (OVERHANG - 1)];
	/* state variables from sp_frm.c */
	Shortword pswAnalysisState[NP];
	Shortword pswWStateNum[NP];
	Shortword pswWStateDenom[NP];
	/* state variables from sp_sfrm.c */
	Shortword pswLtpStateBase[LTP_LEN + S_LEN];
	Shortword pswHState[NP];
	Shortword pswHNWState[HNW_BUFF_LEN];
	/* from vad.c */
	struct vad_state {
		Shortword pswRvad[9];
		Shortword swNormRvad;
		Shortword swPt_sacf;
		Shortword swPt_sav0;
		Shortword swE_thvad;
		Shortword swM_thvad;
		Shortword swAdaptCount;
		Shortword swBurstCount;
		Shortword swHangCount;
		Shortword swOldLagCount;
		Shortword swVeryOldLagCount;
		Shortword swOldLag;
		Longword pL_sacf[27];
		Longword pL_sav0[36];
		Longword L_lastdm;
	} vad;
};

#endif