FreeCalypso > hg > gsm-codec-lib
annotate libgsmfr2/ed_internal.h @ 585:3c6bf0d26ee7 default tip
TW-TS-005 reader: fix maximum line length bug
TW-TS-005 section 4.1 states:
The maximum allowed length of each line is 80 characters, not
including the OS-specific newline encoding.
The implementation of this line length limit in the TW-TS-005 hex file
reader function in the present suite was wrong, such that lines of
the full maximum length could not be read. Fix it.
Note that this bug affects comment lines too, not just actual RTP
payloads. Neither Annex A nor Annex B features an RTP payload format
that goes to the maximum of 40 bytes, but if a comment line goes to
the maximum allowed length of 80 characters not including the
terminating newline, the bug will be triggered, necessitating
the present fix.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 25 Feb 2025 07:49:28 +0000 |
parents | 8b21a6b7a3bf |
children |
rev | line source |
---|---|
264
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This header file has been adapted from inc/private.h |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * in TU-Berlin libgsm source, original notice follows: |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * Universitaet Berlin. See the accompanying file "COPYRIGHT" for |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #define SASR(x, by) ((x) >> (by)) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 * Prototypes from add.c |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 extern word gsm_mult (word a, word b); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 extern longword gsm_L_mult (word a, word b); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 extern word gsm_mult_r (word a, word b); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 extern word gsm_div (word num, word denum); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 extern word gsm_add ( word a, word b ); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 extern longword gsm_L_add ( longword a, longword b ); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 extern word gsm_sub (word a, word b); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 extern longword gsm_L_sub (longword a, longword b); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 extern word gsm_abs (word a); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 extern word gsm_norm ( longword a ); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 extern longword gsm_L_asl (longword a, int n); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 extern word gsm_asl (word a, int n); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 extern longword gsm_L_asr (longword a, int n); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 extern word gsm_asr (word a, int n); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 * Inlined functions from add.h |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 * #define GSM_MULT_R(a, b) (* word a, word b, !(a == b == MIN_WORD) *) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 * (0x0FFFF & SASR(((longword)(a) * (longword)(b) + 16384), 15)) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #define GSM_MULT_R(a, b) /* word a, word b, !(a == b == MIN_WORD) */ \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 (SASR( ((longword)(a) * (longword)(b) + 16384), 15 )) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 # define GSM_MULT(a,b) /* word a, word b, !(a == b == MIN_WORD) */ \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 (SASR( ((longword)(a) * (longword)(b)), 15 )) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 # define GSM_L_MULT(a, b) /* word a, word b */ \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 (((longword)(a) * (longword)(b)) << 1) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 # define GSM_L_ADD(a, b) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 ( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 : (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 >= MAX_LONGWORD ? MIN_LONGWORD : -(longword)utmp-2 ) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 : ((b) <= 0 ? (a) + (b) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 : (utmp = (ulongword)(a) + (ulongword)(b)) >= MAX_LONGWORD \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 ? MAX_LONGWORD : utmp)) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 * # define GSM_ADD(a, b) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 * ((ltmp = (longword)(a) + (longword)(b)) >= MAX_WORD \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 * ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 /* Nonportable, but faster: */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 #define GSM_ADD(a, b) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 ((ulongword)((ltmp = (longword)(a) + (longword)(b)) - MIN_WORD) > \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 # define GSM_SUB(a, b) \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 ((ltmp = (longword)(a) - (longword)(b)) >= MAX_WORD \ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 # define GSM_ABS(a) ((a) < 0 ? ((a) == MIN_WORD ? MAX_WORD : -(a)) : (a)) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 /* Use these if necessary: |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 # define GSM_MULT_R(a, b) gsm_mult_r(a, b) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 # define GSM_MULT(a, b) gsm_mult(a, b) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 # define GSM_L_MULT(a, b) gsm_L_mult(a, b) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 # define GSM_L_ADD(a, b) gsm_L_add(a, b) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 # define GSM_ADD(a, b) gsm_add(a, b) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 # define GSM_SUB(a, b) gsm_sub(a, b) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 # define GSM_ABS(a) gsm_abs(a) |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 * More prototypes from implementations.. |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 void Gsm_Long_Term_Predictor ( /* 4x for 160 samples */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 word * d, /* [0..39] residual signal IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 word * dp, /* [-120..-1] d' IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 word * e, /* [0..40] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 word * dpp, /* [0..40] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 word * Nc, /* correlation lag OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 word * bc /* gain factor OUT */); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 void Gsm_LPC_Analysis ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 word * s, /* 0..159 signals IN/OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 word * LARc); /* 0..7 LARc's OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 void Gsm_Preprocess ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 const word * s, word * so); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 void Gsm_Encoding ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 word * e, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 word * ep, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 word * xmaxc, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 word * Mc, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 word * xMc); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 void Gsm_Short_Term_Analysis_Filter ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 const word * LARc, /* coded log area ratio [0..7] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 word * d /* st res. signal [0..159] IN/OUT */); |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 void Gsm_Decoding ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 word xmaxcr, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 word Mcr, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 const word * xMcr, /* [0..12] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 word * erp); /* [0..39] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 void Gsm_Long_Term_Synthesis_Filtering ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 struct gsmfr_0610_state* S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 word Ncr, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 word bcr, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 word * erp, /* [0..39] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 word * drp); /* [-120..-1] IN, [0..40] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 void Gsm_RPE_Decoding ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 struct gsmfr_0610_state *S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 word xmaxcr, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 word Mcr, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 const word * xMcr, /* [0..12], 3 bits IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 word * erp); /* [0..39] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 void Gsm_RPE_Encoding ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 word * e, /* -5..-1][0..39][40..44 IN/OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 word * xmaxc, /* OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 word * Mc, /* OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 word * xMc); /* [0..12] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 void Gsm_Short_Term_Synthesis_Filter ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 struct gsmfr_0610_state * S, |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 const word * LARcr, /* log area ratios [0..7] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 word * drp, /* received d [0...39] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 word * s); /* signal s [0..159] OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 void Gsm_Update_of_reconstructed_short_time_residual_signal ( |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 word * dpp, /* [0...39] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 word * ep, /* [0...39] IN */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 word * dp); /* [-120...-1] IN/OUT */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 /* |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 * Tables from table.c |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 */ |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 extern word gsm_A[8], gsm_B[8], gsm_MIC[8], gsm_MAC[8]; |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 extern word gsm_INVA[8]; |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 extern word gsm_DLB[4], gsm_QLB[4]; |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 extern word gsm_H[11]; |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 extern word gsm_NRFAC[8]; |
8b21a6b7a3bf
libgsmfr2: beginning to integrate TU-Berlin code guts
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 extern word gsm_FAC[8]; |