annotate doc/Utils-overview @ 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 3aeb33d835ad
children a55fcc8b6daf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 Here is the complete list of all command line utilities included in the present
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 package:
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3
218
f4f68c652e98 doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 209
diff changeset
4 amr-cod-parse See AMR-study-utils article.
f4f68c652e98 doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 209
diff changeset
5 amr-ietf-parse
f4f68c652e98 doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 209
diff changeset
6 amr-cod2ietf
f4f68c652e98 doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 209
diff changeset
7 amr-ietf2cod
f4f68c652e98 doc: document AMR study utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 209
diff changeset
8
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 gsm-amr2efr See AMR-EFR-conversion article.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 gsm-efr2amr
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 gsmefr-cod-parse See EFR-testing article.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 gsmefr-dec-parse
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
240
3aeb33d835ad doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
15 gsmefr-cod2gsmx This program reads an EFR codec frame stream in ETSI
3aeb33d835ad doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
16 *.cod format and converts it to Themyscira gsmx format.
3aeb33d835ad doc/Utils-overview: document gsmefr-cod2gsmx
Mychaela Falconia <falcon@freecalypso.org>
parents: 238
diff changeset
17
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 gsmefr-decode See Codec-utils article.
157
04936af99fc8 document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 143
diff changeset
19 gsmefr-decode-r
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 gsmefr-encode
157
04936af99fc8 document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 143
diff changeset
21 gsmefr-encode-r
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
169
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
23 gsmefr-dlcap-dec See Calypso-TCH-downlink article.
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
24 gsmefr-dlcap-gsmx
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
25 gsmefr-dlcap-parse
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
26
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 gsmefr-etsi-dec See EFR-testing article.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 gsmefr-etsi-enc
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 gsmefr-rec2etsi This program reads an EFR session recording in gsmx
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 format and converts it into ETSI decoder input (.dec)
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 format. It was written early in the project as a sanity
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 check, to verify that the format of TCH uplink from
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 sysmoBTS in EFR mode matches our expectations, before
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 embarking on the labor-intensive project to librify EFR
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 reference code from ETSI.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 gsmfr-decode See Codec-utils article.
157
04936af99fc8 document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 143
diff changeset
39 gsmfr-decode-r
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 gsmfr-encode
157
04936af99fc8 document gsm[e]fr-{en,de}code-r utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 143
diff changeset
41 gsmfr-encode-r
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
169
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
43 gsmfr-dlcap-gsmx See Calypso-TCH-downlink article.
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
44 gsmfr-dlcap-parse
0c965c3c5e6e doc/Utils-overview: new Calypso TCH DL utils
Mychaela Falconia <falcon@freecalypso.org>
parents: 157
diff changeset
45
136
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 gsmfr-hand-test This program was written as part of a debug chase:
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 there seemed to be a design flaw in libgsmfrp, but the
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 actual bug turned out to be in the way we patched
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 osmo-bts-sysmo to produce a continuous RTP stream.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 gsmfr-max-out Another test program written as part of the same debug
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 chase.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 gsmfr-preproc This program reads a gsmx file in FR codec format,
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 passes it through our Rx DTX preprocessor (libgsmfrp),
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 and writes the preprocessor output to another .gsm file.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 gsmrec-dump See Binary-file-format article.
8eb0e7a39409 doc: document command line utilities
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59
238
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
60 pcm16-check13 This program reads a 16-bit linear PCM recording file
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
61 (raw BE by default, or raw LE with -l option) and checks
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
62 if the 3 least significant bits of every sample are all
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
63 zeros. All linear PCM samples consumed or generated by
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
64 GSM codecs are only 13 bits wide, left-justified in
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
65 16-bit words, and so is output from G.711 A-law decoding
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
66 - thus it is useful to be able to check if a given file
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
67 in 16-bit PCM format is purely 13-bit or not.
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
68
143
195911f2211c document PCM format conversion utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 136
diff changeset
69 pcm16-raw2wav See PCM-file-formats article.
195911f2211c document PCM format conversion utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 136
diff changeset
70 pcm16-wav2raw
238
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
71
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
72 pcm16-to-alaw See PCM8-conversions article.
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
73 pcm16-to-ulaw
de1b52304d26 doc/Utils-overview: add new PCM utilities
Mychaela Falconia <falcon@freecalypso.org>
parents: 218
diff changeset
74 pcm8-to-pcm16