annotate efrtest/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 b8e095a9e360
children 51678b070c7a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
f88817a233fb gsmfr-decode test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 CC= gcc
f88817a233fb gsmfr-decode test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 CFLAGS= -O2
239
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
3 PROGS= gsmefr-cod-parse gsmefr-cod2gsmx gsmefr-dec-parse gsmefr-decode \
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
4 gsmefr-decode-r gsmefr-dlcap-dec gsmefr-dlcap-gsmx gsmefr-dlcap-parse \
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
5 gsmefr-encode gsmefr-encode-r gsmefr-etsi-dec gsmefr-etsi-enc \
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
6 gsmefr-rec2etsi
47
89945a3b576e gsmefr-rec2etsi test program added
Mychaela Falconia <falcon@freecalypso.org>
parents: 29
diff changeset
7 LIBEFR= ../libgsmefr/libgsmefr.a
14
69ed7af28473 gsmfr-encode test program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 12
diff changeset
8 LIBTEST=../libtest/libtest.a
17
68a7e86c9868 frtest/Makefile: add install
Mychaela Falconia <falcon@freecalypso.org>
parents: 14
diff changeset
9 INSTBIN=/opt/freecalypso/bin
12
f88817a233fb gsmfr-decode test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10
27
896ce7f1d271 frtest: cn-debug is now gsmfr-max-out
Mychaela Falconia <falcon@freecalypso.org>
parents: 26
diff changeset
11 all: ${PROGS}
12
f88817a233fb gsmfr-decode test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
147
90b9c7c3fa3b gsmefr-cod-parse: use factored-out ETSI bit reader
Mychaela Falconia <falcon@freecalypso.org>
parents: 146
diff changeset
13 gsmefr-cod-parse: cod-parse.o etsi-bit-rd.o ${LIBEFR}
90b9c7c3fa3b gsmefr-cod-parse: use factored-out ETSI bit reader
Mychaela Falconia <falcon@freecalypso.org>
parents: 146
diff changeset
14 ${CC} ${CFLAGS} -o $@ cod-parse.o etsi-bit-rd.o ${LIBEFR}
115
5a63294fa321 gsmefr-cod-parse test program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 114
diff changeset
15
239
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
16 gsmefr-cod2gsmx: cod2gsmx.o etsi-bit-rd.o
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
17 ${CC} ${CFLAGS} -o $@ cod2gsmx.o etsi-bit-rd.o
b8e095a9e360 efrtest: new program gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 164
diff changeset
18
146
0fa0cd251a31 gsmefr-dec-parse: use factored-out ETSI bit reader
Mychaela Falconia <falcon@freecalypso.org>
parents: 145
diff changeset
19 gsmefr-dec-parse: dec-parse.o etsi-bit-rd.o ${LIBEFR}
0fa0cd251a31 gsmefr-dec-parse: use factored-out ETSI bit reader
Mychaela Falconia <falcon@freecalypso.org>
parents: 145
diff changeset
20 ${CC} ${CFLAGS} -o $@ dec-parse.o etsi-bit-rd.o ${LIBEFR}
131
615f144b52c6 gsmefr-dec-parse utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 121
diff changeset
21
100
d5bab777865a gsmefr-decode utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 96
diff changeset
22 gsmefr-decode: decode.o ${LIBTEST} ${LIBEFR}
d5bab777865a gsmefr-decode utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 96
diff changeset
23 ${CC} ${CFLAGS} -o $@ decode.o ${LIBTEST} ${LIBEFR}
d5bab777865a gsmefr-decode utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 96
diff changeset
24
154
01ce75ea1c8e gsmefr-decode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
25 gsmefr-decode-r: decode-r.o ${LIBTEST} ${LIBEFR}
01ce75ea1c8e gsmefr-decode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
26 ${CC} ${CFLAGS} -o $@ decode-r.o ${LIBTEST} ${LIBEFR}
01ce75ea1c8e gsmefr-decode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 147
diff changeset
27
164
5f23cb3f0f8d gsmefr-dlcap-dec program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 162
diff changeset
28 gsmefr-dlcap-dec: dlcap-dec.o tidsp.o ${LIBTEST} ${LIBEFR}
5f23cb3f0f8d gsmefr-dlcap-dec program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 162
diff changeset
29 ${CC} ${CFLAGS} -o $@ dlcap-dec.o tidsp.o ${LIBTEST} ${LIBEFR}
5f23cb3f0f8d gsmefr-dlcap-dec program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 162
diff changeset
30
140
5efc377326da gsmefr-dlcap-gsmx: EFR counterpart to gsmfr-cvt-dlcap
Mychaela Falconia <falcon@freecalypso.org>
parents: 131
diff changeset
31 gsmefr-dlcap-gsmx: dlcap-gsmx.o tidsp.o ${LIBTEST}
5efc377326da gsmefr-dlcap-gsmx: EFR counterpart to gsmfr-cvt-dlcap
Mychaela Falconia <falcon@freecalypso.org>
parents: 131
diff changeset
32 ${CC} ${CFLAGS} -o $@ dlcap-gsmx.o tidsp.o ${LIBTEST}
5efc377326da gsmefr-dlcap-gsmx: EFR counterpart to gsmfr-cvt-dlcap
Mychaela Falconia <falcon@freecalypso.org>
parents: 131
diff changeset
33
162
b98aebd94d1f gsmefr-dlcap-parse utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 156
diff changeset
34 gsmefr-dlcap-parse: dlcap-parse.o tidsp.o ${LIBTEST} ${LIBEFR}
b98aebd94d1f gsmefr-dlcap-parse utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 156
diff changeset
35 ${CC} ${CFLAGS} -o $@ dlcap-parse.o tidsp.o ${LIBTEST} ${LIBEFR}
b98aebd94d1f gsmefr-dlcap-parse utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 156
diff changeset
36
121
b51295fcbbae gsmefr-encode utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 115
diff changeset
37 gsmefr-encode: encode.o ${LIBTEST} ${LIBEFR}
b51295fcbbae gsmefr-encode utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 115
diff changeset
38 ${CC} ${CFLAGS} -o $@ encode.o ${LIBTEST} ${LIBEFR}
b51295fcbbae gsmefr-encode utility written
Mychaela Falconia <falcon@freecalypso.org>
parents: 115
diff changeset
39
156
3f3674c27840 gsmefr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 154
diff changeset
40 gsmefr-encode-r: encode-r.o ${LIBTEST} ${LIBEFR}
3f3674c27840 gsmefr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 154
diff changeset
41 ${CC} ${CFLAGS} -o $@ encode-r.o ${LIBTEST} ${LIBEFR}
3f3674c27840 gsmefr-encode-r utility put together
Mychaela Falconia <falcon@freecalypso.org>
parents: 154
diff changeset
42
145
8ed838709897 efrtest: ETSI bit reading factored out of gsmefr-etsi-dec
Mychaela Falconia <falcon@freecalypso.org>
parents: 140
diff changeset
43 gsmefr-etsi-dec: etsi-dec.o etsi-bit-rd.o ${LIBEFR}
8ed838709897 efrtest: ETSI bit reading factored out of gsmefr-etsi-dec
Mychaela Falconia <falcon@freecalypso.org>
parents: 140
diff changeset
44 ${CC} ${CFLAGS} -o $@ etsi-dec.o etsi-bit-rd.o ${LIBEFR}
96
9cf1355bc071 gsmefr-etsi-dec test program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 47
diff changeset
45
114
ff0372186b59 gsmefr-etsi-enc test program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
46 gsmefr-etsi-enc: etsi-enc.o ${LIBEFR}
ff0372186b59 gsmefr-etsi-enc test program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
47 ${CC} ${CFLAGS} -o $@ etsi-enc.o ${LIBEFR}
ff0372186b59 gsmefr-etsi-enc test program written
Mychaela Falconia <falcon@freecalypso.org>
parents: 100
diff changeset
48
47
89945a3b576e gsmefr-rec2etsi test program added
Mychaela Falconia <falcon@freecalypso.org>
parents: 29
diff changeset
49 gsmefr-rec2etsi: rec2etsi.o ${LIBTEST} ${LIBEFR}
89945a3b576e gsmefr-rec2etsi test program added
Mychaela Falconia <falcon@freecalypso.org>
parents: 29
diff changeset
50 ${CC} ${CFLAGS} -o $@ rec2etsi.o ${LIBTEST} ${LIBEFR}
24
94f18b720f1e new debug utility gsmfr-preproc
Mychaela Falconia <falcon@freecalypso.org>
parents: 19
diff changeset
51
17
68a7e86c9868 frtest/Makefile: add install
Mychaela Falconia <falcon@freecalypso.org>
parents: 14
diff changeset
52 install:
68a7e86c9868 frtest/Makefile: add install
Mychaela Falconia <falcon@freecalypso.org>
parents: 14
diff changeset
53 mkdir -p ${INSTBIN}
68a7e86c9868 frtest/Makefile: add install
Mychaela Falconia <falcon@freecalypso.org>
parents: 14
diff changeset
54 install -c ${PROGS} ${INSTBIN}
68a7e86c9868 frtest/Makefile: add install
Mychaela Falconia <falcon@freecalypso.org>
parents: 14
diff changeset
55
12
f88817a233fb gsmfr-decode test program written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 clean:
27
896ce7f1d271 frtest: cn-debug is now gsmfr-max-out
Mychaela Falconia <falcon@freecalypso.org>
parents: 26
diff changeset
57 rm -f *.o *.out ${PROGS}