comparison libgsmfrp/internal.h @ 4:286d5f097eb4

libgsmfrp: implement comfort noise generation
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 19 Nov 2022 20:16:09 +0000
parents 3cd5ad24b1d4
children 3b64f255689a
comparison
equal deleted inserted replaced
3:3cd5ad24b1d4 4:286d5f097eb4
9 SPEECH_MUTING, 9 SPEECH_MUTING,
10 COMFORT_NOISE, 10 COMFORT_NOISE,
11 LOST_SID, 11 LOST_SID,
12 }; 12 };
13 13
14 typedef unsigned char cparam;
15
16 struct gsmfr_preproc_state { 14 struct gsmfr_preproc_state {
17 enum rx_state rx_state; 15 enum rx_state rx_state;
18 int got_valid_sid; 16 int got_valid_sid;
19 gsm_frame speech_frame; 17 gsm_frame speech_frame;
20 cparam cnoise_larc[8]; 18 gsm_byte sid_prefix[5];
21 cparam cnoise_xmaxc[4]; 19 uint8_t sid_xmaxc[4];
20 uint32_t cn_random_lfsr;
21 unsigned cn_random_6fold;
22 }; 22 };
23
24 /* we use the same LFSR PRNG for CN as ETSI EFR implementation */
25 #define PN_INITIAL_SEED 0x70816958L /* Pseudo noise generator seed value */
26
27 /* internal function */
28 extern void gsmfr_preproc_gen_cn(struct gsmfr_preproc_state *state,
29 gsm_byte *frame);