annotate dev/Makefile @ 242:f081a6850fb5

libgsmfrp: new refined implementation The previous implementation exhibited the following defects, which are now fixed: 1) The last received valid SID was cached forever for the purpose of handling future invalid SIDs - we could have received some valid SID ages ago, then lots of speech or NO_DATA, and if we then get an invalid SID, we would resurrect the last valid SID from ancient history - a bad design. In our new design, we handle invalid SID based on the current state, much like BFI. 2) GSM 06.11 spec says clearly that after the second lost SID (received BFI=1 && TAF=1 in CN state) we need to gradually decrease the output level, rather than jump directly to emitting silence frames - we previously failed to implement such logic. 3) Per GSM 06.12 section 5.2, Xmaxc should be the same in all 4 subframes in a SID frame. What should we do if we receive an otherwise valid SID frame with different Xmaxc? Our previous approach would replicate this Xmaxc oddity in every subsequent generated CN frame, which is rather bad. In our new design, the very first CN frame (which can be seen as a transformation of the SID frame itself) retains the original 4 distinct Xmaxc, but all subsequent CN frames are based on the Xmaxc from the last subframe of the most recent SID.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 09 May 2023 05:16:31 +0000
parents bbdefd2ef950
children 56d3fbacd115
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 CC= gcc
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 CFLAGS= -O2
224
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
3 PROGS= a2s-regen efr-bit-packing efr-sid-insert efr-tidsp gsm0611-silence-fr \
233
bbdefd2ef950 dev: new program mk-256bytes
Mychaela Falconia <falcon@freecalypso.org>
parents: 230
diff changeset
4 mk-256bytes s2a-regen s2u-regen s2u-regen-plus4 u2s-regen
224
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
5 DATAOUT=a2s-regen.out efr-bit-packing.out efr-sid-insert.out efr-tidsp.out \
230
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
6 gsm0611-silence-fr.out s2a-regen.out s2u-regen.out s2u-regen-plus4.out \
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
7 u2s-regen.out
1
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 all: ${PROGS} ${DATAOUT}
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
224
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
11 a2s-regen: a2s-regen.c
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
12 ${CC} ${CFLAGS} -o $@ $@.c
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
13
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
14 a2s-regen.out: a2s-regen
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
15 ./a2s-regen > $@
b502321000aa dev: new program a2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 222
diff changeset
16
32
9639a44ae2e7 dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 1
diff changeset
17 efr-bit-packing: efr-bit-packing.c
9639a44ae2e7 dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 1
diff changeset
18 ${CC} ${CFLAGS} -o $@ $@.c
9639a44ae2e7 dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 1
diff changeset
19
9639a44ae2e7 dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 1
diff changeset
20 efr-bit-packing.out: efr-bit-packing
9639a44ae2e7 dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 1
diff changeset
21 ./efr-bit-packing > $@
9639a44ae2e7 dev: efr-bit-packing helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 1
diff changeset
22
35
3b5958f28a40 dev: efr-sid-insert helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 32
diff changeset
23 efr-sid-insert: efr-sid-insert.c
3b5958f28a40 dev: efr-sid-insert helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 32
diff changeset
24 ${CC} ${CFLAGS} -o $@ $@.c
3b5958f28a40 dev: efr-sid-insert helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 32
diff changeset
25
3b5958f28a40 dev: efr-sid-insert helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 32
diff changeset
26 efr-sid-insert.out: efr-sid-insert
3b5958f28a40 dev: efr-sid-insert helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 32
diff changeset
27 ./efr-sid-insert > $@
3b5958f28a40 dev: efr-sid-insert helper program
Mychaela Falconia <falcon@freecalypso.org>
parents: 32
diff changeset
28
138
68215020852b dev: add efr-tidsp table generator program
Mychaela Falconia <falcon@freecalypso.org>
parents: 35
diff changeset
29 efr-tidsp: efr-tidsp.c
68215020852b dev: add efr-tidsp table generator program
Mychaela Falconia <falcon@freecalypso.org>
parents: 35
diff changeset
30 ${CC} ${CFLAGS} -o $@ $@.c
68215020852b dev: add efr-tidsp table generator program
Mychaela Falconia <falcon@freecalypso.org>
parents: 35
diff changeset
31
68215020852b dev: add efr-tidsp table generator program
Mychaela Falconia <falcon@freecalypso.org>
parents: 35
diff changeset
32 efr-tidsp.out: efr-tidsp
68215020852b dev: add efr-tidsp table generator program
Mychaela Falconia <falcon@freecalypso.org>
parents: 35
diff changeset
33 ./efr-tidsp > $@
68215020852b dev: add efr-tidsp table generator program
Mychaela Falconia <falcon@freecalypso.org>
parents: 35
diff changeset
34
1
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 gsm0611-silence-fr: gsm0611-silence-fr.c
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 ${CC} ${CFLAGS} -o $@ $@.c -lgsm
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 gsm0611-silence-fr.out: gsm0611-silence-fr
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 ./gsm0611-silence-fr > $@
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
233
bbdefd2ef950 dev: new program mk-256bytes
Mychaela Falconia <falcon@freecalypso.org>
parents: 230
diff changeset
41 mk-256bytes: mk-256bytes.c
bbdefd2ef950 dev: new program mk-256bytes
Mychaela Falconia <falcon@freecalypso.org>
parents: 230
diff changeset
42 ${CC} ${CFLAGS} -o $@ $@.c
bbdefd2ef950 dev: new program mk-256bytes
Mychaela Falconia <falcon@freecalypso.org>
parents: 230
diff changeset
43
222
842136bbd0da dev: new program s2a-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 138
diff changeset
44 s2a-regen: s2a-regen.c
842136bbd0da dev: new program s2a-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 138
diff changeset
45 ${CC} ${CFLAGS} -o $@ $@.c
842136bbd0da dev: new program s2a-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 138
diff changeset
46
842136bbd0da dev: new program s2a-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 138
diff changeset
47 s2a-regen.out: s2a-regen
842136bbd0da dev: new program s2a-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 138
diff changeset
48 ./s2a-regen > $@
842136bbd0da dev: new program s2a-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 138
diff changeset
49
226
84d22eb72196 dev: new program s2u-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 224
diff changeset
50 s2u-regen: s2u-regen.c
84d22eb72196 dev: new program s2u-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 224
diff changeset
51 ${CC} ${CFLAGS} -o $@ $@.c
84d22eb72196 dev: new program s2u-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 224
diff changeset
52
84d22eb72196 dev: new program s2u-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 224
diff changeset
53 s2u-regen.out: s2u-regen
84d22eb72196 dev: new program s2u-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 224
diff changeset
54 ./s2u-regen > $@
84d22eb72196 dev: new program s2u-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 224
diff changeset
55
228
67d60915fbbe dev: new program s2u-regen-plus4
Mychaela Falconia <falcon@freecalypso.org>
parents: 226
diff changeset
56 s2u-regen-plus4: s2u-regen-plus4.c
67d60915fbbe dev: new program s2u-regen-plus4
Mychaela Falconia <falcon@freecalypso.org>
parents: 226
diff changeset
57 ${CC} ${CFLAGS} -o $@ $@.c
67d60915fbbe dev: new program s2u-regen-plus4
Mychaela Falconia <falcon@freecalypso.org>
parents: 226
diff changeset
58
67d60915fbbe dev: new program s2u-regen-plus4
Mychaela Falconia <falcon@freecalypso.org>
parents: 226
diff changeset
59 s2u-regen-plus4.out: s2u-regen-plus4
67d60915fbbe dev: new program s2u-regen-plus4
Mychaela Falconia <falcon@freecalypso.org>
parents: 226
diff changeset
60 ./s2u-regen-plus4 > $@
67d60915fbbe dev: new program s2u-regen-plus4
Mychaela Falconia <falcon@freecalypso.org>
parents: 226
diff changeset
61
230
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
62 u2s-regen: u2s-regen.c
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
63 ${CC} ${CFLAGS} -o $@ $@.c
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
64
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
65 u2s-regen.out: u2s-regen
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
66 ./u2s-regen > $@
20750ffb1c3e dev: new program u2s-regen
Mychaela Falconia <falcon@freecalypso.org>
parents: 228
diff changeset
67
1
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 clean:
6780b23654bd libgsmfrp: starting with the silence frame
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 rm -f *.o *.out ${PROGS}