FreeCalypso > hg > gsm-codec-lib
view libgsmfrp/internal.h @ 128:a5ffec18e4cd
test programs: use printf %d format for codec parameters
Even though all codec params (both FR and EFR) are small unsigned integers,
we use signed int16_t data type for both, for interface reasons: in the
case of FR it's the gsm_signal type of libgsm, and in the case of EFR
it's the Word16 type of ETSI codec guts. Therefore, the correct printf
format is %d, not %u, when the objective is to see what's in the variables
(what the compiler sees) and catch any bugs.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 11 Dec 2022 04:00:13 +0000 |
parents | 3b64f255689a |
children | f081a6850fb5 |
line wrap: on
line source
/* * This header file is internal to libgsmfrp; * here we define our state structure. */ enum rx_state { NO_DATA = 0, SPEECH, SPEECH_MUTING, COMFORT_NOISE, LOST_SID, }; struct gsmfr_preproc_state { enum rx_state rx_state; int got_valid_sid; gsm_frame speech_frame; gsm_byte sid_prefix[5]; uint8_t sid_xmaxc[4]; uint32_t cn_random_lfsr; unsigned cn_random_6fold; }; /* we use the same LFSR PRNG for CN as ETSI EFR implementation */ #define PN_INITIAL_SEED 0x70816958L /* Pseudo noise generator seed value */ /* internal functions */ extern void gsmfr_preproc_gen_cn(struct gsmfr_preproc_state *state, gsm_byte *frame); extern uint16_t gsmfr_preproc_prng(struct gsmfr_preproc_state *state, uint16_t no_bits);