FreeCalypso > hg > gsm-codec-lib
view libgsmhr1/dec_func.h @ 603:27df1cef042c
libgsmhr1: put aToRc() only in dec_func.c
This function was originally static in sp_dec.c, but now it is needed
both in sp_dec.c and in dec_func.c shared decoder+encoder functions.
Solution: give it intermodule linkage, and let it reside in dec_func.c
only.
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Thu, 04 Dec 2025 19:05:38 +0000 |
| parents | c7c03231002d |
| children |
line wrap: on
line source
/* * This library-internal header file is derived from sp_dec.h in the * original GSM 06.06 code drop. It contains function prototype * declarations for functions that were originally in sp_dec.c, but * have been moved to dec_func.c in our library. These functions * relate to speech decoding, but are used by both decoder and encoder * engines, following the principle of an analysis-by-synthesis codec. */ #ifndef dec_func_h #define dec_func_h #include "typedefs.h" /*_________________________________________________________________________ | | | Function Prototypes | |_________________________________________________________________________| */ void aFlatRcDp(Longword *pL_R, Shortword *pswRc); short aToRc(Shortword swAshift, Shortword pswAin[], Shortword pswRc[]); void b_con(Shortword swCodeWord, short siNumBits, Shortword pswVectOut[]); void fp_ex(Shortword swOrigLagIn, Shortword pswLTPState[]); Shortword g_corr1(Shortword *pswIn, Longword *pL_out); Shortword g_corr1s(Shortword pswIn[], Shortword swEngyRShft, Longword *pL_out); void getSfrmLpc(short int siSoftInterpolation, Shortword swPrevR0, Shortword swNewR0, Shortword pswPrevFrmKs[], Shortword pswPrevFrmAs[], Shortword pswPrevFrmPFNum[], Shortword pswPrevFrmPFDenom[], Shortword pswNewFrmKs[], Shortword pswNewFrmAs[], Shortword pswNewFrmPFNum[], Shortword pswNewFrmPFDenom[], struct NormSw *psnsSqrtRs, Shortword *ppswSynthAs[], Shortword *ppswPFNumAs[], Shortword *ppswPFDenomAs[]); void get_ipjj(Shortword swLagIn, Shortword *pswIp, Shortword *pswJj); short int interpolateCheck(Shortword pswRefKs[], Shortword pswRefCoefsA[], Shortword pswOldCoefsA[], Shortword pswNewCoefsA[], Shortword swOldPer, Shortword swNewPer, Shortword swRq, struct NormSw *psnsSqrtRsOut, Shortword pswCoefOutA[]); void lpcFir(Shortword pswInput[], Shortword pswCoef[], Shortword pswState[], Shortword pswFiltOut[]); void lpcIir(Shortword pswInput[], Shortword pswCoef[], Shortword pswState[], Shortword pswFiltOut[]); void lpcIrZsIir(Shortword pswCoef[], Shortword pswFiltOut[]); void lpcZiIir(Shortword pswCoef[], Shortword pswState[], Shortword pswFiltOut[]); void lpcZsFir(Shortword pswInput[], Shortword pswCoef[], Shortword pswFiltOut[]); void lpcZsIir(Shortword pswInput[], Shortword pswCoef[], Shortword pswFiltOut[]); void lpcZsIirP(Shortword pswCommonIO[], Shortword pswCoef[]); Shortword r0BasedEnergyShft(Shortword swR0Index); short rcToADp(Shortword swAscale, Shortword pswRc[], Shortword pswA[]); void rcToCorrDpL(Shortword swAshift, Shortword swAscale, const Shortword pswRc[], Longword pL_R[]); void res_eng(Shortword pswReflecCoefIn[], Shortword swRq, struct NormSw *psnsSqrtRsOut); void rs_rr(Shortword pswExcitation[], struct NormSw snsSqrtRs, struct NormSw *snsSqrtRsRr); void rs_rrNs(Shortword pswExcitation[], struct NormSw snsSqrtRs, struct NormSw *snsSqrtRsRr); Shortword scaleExcite(Shortword pswVect[], Shortword swErrTerm, struct NormSw snsRS, Shortword pswScldVect[]); Shortword sqroot(Longword L_SqrtIn); void v_con(const Shortword pswBVects[], Shortword pswOutVect[], Shortword pswBitArray[], short int siNumBVctrs); #endif
