FreeCalypso > hg > gsm-codec-lib
annotate libgsmefr/dec_12k2.c @ 149:95d47a34070a
gsmefr-dec-parse: add BE support
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 14 Dec 2022 18:12:55 +0000 | 
| parents | d80e9f12a1d1 | 
| children | 7dd6336e15b2 | 
| rev | line source | 
|---|---|
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /*************************************************************************** | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 * FILE NAME: dec_12k2.c | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 * FUNCTIONS DEFINED IN THIS FILE: | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 * Init_Decoder_12k2 and Decoder_12k2 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 * Init_Decoder_12k2(): | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 * Initialization of variables for the decoder section. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 * Decoder_12k2(): | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 * Speech decoder routine operating on a frame basis. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 ***************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
17 #include "gsm_efr.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 #include "typedef.h" | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
19 #include "namespace.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 #include "basic_op.h" | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 #include "sig_proc.h" | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
22 #include "memops.h" | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
23 #include "no_count.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 #include "codec.h" | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #include "cnst.h" | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
26 #include "dec_state.h" | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include "dtx.h" | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 /*---------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 * Decoder constant parameters (defined in "cnst.h") * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 *---------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 * L_FRAME : Frame size. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 * L_FRAME_BY2 : Half the frame size. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 * L_SUBFR : Sub-frame size. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 * M : LPC order. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 * MP1 : LPC order+1 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 * PIT_MIN : Minimum pitch lag. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 * PIT_MAX : Maximum pitch lag. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 * L_INTERPOL : Length of filter for interpolation * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 * PRM_SIZE : size of vector containing analysis parameters * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 *---------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 /*--------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 * Static memory allocation. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 *--------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 /*************************************************************************** | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 * FUNCTION: Init_Decoder_12k2 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 * PURPOSE: Initialization of variables for the decoder section. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 ***************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
56 void Init_Decoder_12k2 (struct EFR_decoder_state *st) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 /* Static vectors to zero */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
60 Set_zero (st->old_exc, PIT_MAX + L_INTERPOL); | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
61 Set_zero (st->mem_syn, M); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 /* Initialize lsp_old [] */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
65 st->lsp_old[0] = 30000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
66 st->lsp_old[1] = 26000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
67 st->lsp_old[2] = 21000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
68 st->lsp_old[3] = 15000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
69 st->lsp_old[4] = 8000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
70 st->lsp_old[5] = 0; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
71 st->lsp_old[6] = -8000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
72 st->lsp_old[7] = -15000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
73 st->lsp_old[8] = -21000; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
74 st->lsp_old[9] = -26000; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 /* Initialize memories of bad frame handling */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
78 st->prev_bf = 0; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
79 st->bf_state = 0; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 return; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 /*************************************************************************** | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 * FUNCTION: Decoder_12k2 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 * PURPOSE: Speech decoder routine. | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 ***************************************************************************/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 void Decoder_12k2 ( | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
93 struct EFR_decoder_state *st, | 
| 
94
 
d80e9f12a1d1
libgsmefr: decoder main function put together
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
65 
diff
changeset
 | 
94 Word16 bfi, /* input : Bad Frame Indication */ | 
| 
 
d80e9f12a1d1
libgsmefr: decoder main function put together
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
65 
diff
changeset
 | 
95 const Word16 parm[], /* input : vector of synthesis parameters */ | 
| 
 
d80e9f12a1d1
libgsmefr: decoder main function put together
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
65 
diff
changeset
 | 
96 Word16 synth[], /* output: synthesis speech */ | 
| 
 
d80e9f12a1d1
libgsmefr: decoder main function put together
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
65 
diff
changeset
 | 
97 Word16 A_t[], /* output: decoded LP filter in 4 subframes */ | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 Word16 TAF, | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 Word16 SID_flag | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 ) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
102 Word16 *exc = st->old_exc + PIT_MAX + L_INTERPOL; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 /* LPC coefficients */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 Word16 *Az; /* Pointer on A_t */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 /* LSPs */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 Word16 lsp_new[M]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 Word16 lsp_mid[M]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 /* Algebraic codevector */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 Word16 code[L_SUBFR]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 /* excitation */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 Word16 excp[L_SUBFR]; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 /* Scalars */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 Word16 i, i_subfr; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 Word16 T0, T0_frac, index; | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
125 Word16 gain_pit, gain_code, pit_sharp; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 Word16 temp; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 Word32 L_temp; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 /* Set state machine */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 if (bfi != 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
133 st->bf_state = add (st->bf_state, 1); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 } | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
135 else if (sub (st->bf_state, 6) == 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
137 st->bf_state = 5; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
141 st->bf_state = 0; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
144 if (sub (st->bf_state, 6) > 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
146 st->bf_state = 6; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 } | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
148 rx_dtx (st, TAF, bfi, SID_flag); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 /* If this frame is the first speech frame after CNI period, */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 /* set the BFH state machine to an appropriate state depending */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 /* on whether there was DTX muting before start of speech or not */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 /* If there was DTX muting, the first speech frame is muted. */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 /* If there was no DTX muting, the first speech frame is not */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 /* muted. The BFH state machine starts from state 5, however, to */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 /* keep the audible noise resulting from a SID frame which is */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 /* erroneously interpreted as a good speech frame as small as */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 /* possible (the decoder output in this case is quickly muted) */ | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
159 if ((st->rxdtx_ctrl & RX_FIRST_SP_FLAG) != 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
161 if ((st->rxdtx_ctrl & RX_PREV_DTX_MUTING) != 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
163 st->bf_state = 5; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
164 st->prev_bf = 1; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
168 st->bf_state = 5; | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
169 st->prev_bf = 0; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
173 D_plsf_5 (st, parm, lsp_mid, lsp_new, bfi, st->rxdtx_ctrl, | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
174 st->rx_dtx_state); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 /* Advance synthesis parameters pointer */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 parm += 5; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
179 if ((st->rxdtx_ctrl & RX_SP_FLAG) != 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 /* Interpolation of LPC for the 4 subframes */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
183 Int_lpc (st->lsp_old, lsp_mid, lsp_new, A_t); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 /* Comfort noise: use the same parameters in each subframe */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 Lsp_Az (lsp_new, A_t); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 for (i = 0; i < MP1; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 A_t[i + MP1] = A_t[i]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 A_t[i + 2 * MP1] = A_t[i]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 A_t[i + 3 * MP1] = A_t[i]; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 /* update the LSPs for the next frame */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 for (i = 0; i < M; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
201 st->lsp_old[i] = lsp_new[i]; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 /*---------------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 * Loop for every subframe in the analysis frame * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 *---------------------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 * The subframe size is L_SUBFR and the loop is repeated * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 * L_FRAME/L_SUBFR times * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 * - decode the pitch delay * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 * - decode algebraic code * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 * - decode pitch and codebook gains * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 * - find the excitation and compute synthesis speech * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 *---------------------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 /* pointer to interpolated LPC parameters */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 Az = A_t; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 for (i_subfr = 0; i_subfr < L_FRAME; i_subfr += L_SUBFR) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 { | 
| 
65
 
cb080ec1817e
libgsmefr: dec_lag6.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
64 
diff
changeset
 | 
220 Word16 T0_min, T0_max; /* previously static inside Dec_lag6() */ | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 index = *parm++; move16 (); /* pitch index */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
224 if ((st->rxdtx_ctrl & RX_SP_FLAG) != 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
226 T0 = Dec_lag6 (st, index, PIT_MIN, PIT_MAX, i_subfr, L_FRAME_BY2, | 
| 
65
 
cb080ec1817e
libgsmefr: dec_lag6.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
64 
diff
changeset
 | 
227 &T0_frac, bfi, &T0_min, &T0_max); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 /*-------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 * - Find the adaptive codebook vector. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 *-------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 Pred_lt_6 (&exc[i_subfr], T0, T0_frac, L_SUBFR); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 T0 = L_SUBFR; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 /*-------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 * - Decode pitch gain. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 *-------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 index = *parm++; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
246 gain_pit = d_gain_pitch (st, index, bfi, st->bf_state, st->prev_bf, | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
247 st->rxdtx_ctrl); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 /*-------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 * - Decode innovative codebook. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 *-------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
253 if ((st->rxdtx_ctrl & RX_SP_FLAG) != 0) | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 dec_10i40_35bits (parm, code); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 { /* Use pseudo noise for excitation when SP_flag == 0 */ | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
259 build_CN_code (code, &st->L_pn_seed_rx); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 parm += 10; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 /*-------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 * - Add the pitch contribution to code[]. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 *-------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 /* pit_sharp = gain_pit; */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 /* if (pit_sharp > 1.0) pit_sharp = 1.0; */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 pit_sharp = shl (gain_pit, 3); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 /* This loop is not entered when SP_FLAG is 0 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 for (i = T0; i < L_SUBFR; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 temp = mult (code[i - T0], pit_sharp); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 code[i] = add (code[i], temp); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 } | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
280 | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 /* post processing of excitation elements */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 test (); /* This test is not passed when SP_FLAG is 0 */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 if (sub (pit_sharp, 16384) > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 for (i = 0; i < L_SUBFR; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 temp = mult (exc[i + i_subfr], pit_sharp); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 L_temp = L_mult (temp, gain_pit); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 L_temp = L_shl (L_temp, 1); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 excp[i] = round (L_temp); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 /*-------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 * - Decode codebook gain. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 *-------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 index = *parm++; move16 (); /* index of energy VQ */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
301 d_gain_code (st, index, code, L_SUBFR, &gain_code, bfi, st->bf_state, | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
302 st->prev_bf, st->rxdtx_ctrl, i_subfr, st->rx_dtx_state); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 /*-------------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 * - Find the total excitation. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 * - Find synthesis speech corresponding to exc[]. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 *-------------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 for (i = 0; i < L_SUBFR; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 /* exc[i] = gain_pit*exc[i] + gain_code*code[i]; */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 L_temp = L_mult (exc[i + i_subfr], gain_pit); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 L_temp = L_mac (L_temp, code[i], gain_code); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 L_temp = L_shl (L_temp, 3); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 exc[i + i_subfr] = round (L_temp); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 if (sub (pit_sharp, 16384) > 0) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 for (i = 0; i < L_SUBFR; i++) | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 { | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 excp[i] = add (excp[i], exc[i + i_subfr]); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 agc2 (&exc[i_subfr], excp, L_SUBFR); | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
327 Syn_filt (Az, excp, &synth[i_subfr], L_SUBFR, st->mem_syn, 1); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 else | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 { | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
331 Syn_filt (Az, &exc[i_subfr], &synth[i_subfr], L_SUBFR, | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
332 st->mem_syn, 1); | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 /* interpolated LPC parameters for next subframe */ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 Az += MP1; move16 (); | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 } | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 /*--------------------------------------------------* | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 * Update signal for next frame. * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 * -> shift to the left by L_FRAME exc[] * | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 *--------------------------------------------------*/ | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 | 
| 
64
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
344 Copy (&st->old_exc[L_FRAME], &st->old_exc[0], PIT_MAX + L_INTERPOL); | 
| 
 
1cc2968f883f
libgsmefr: dec_12k2.c compiles
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
53 
diff
changeset
 | 
345 st->prev_bf = bfi; | 
| 
53
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 return; | 
| 
 
49dd1ac8e75b
libgsmefr: import most *.c files from ETSI source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 } | 
